第5章 多表连接和子查询7-8.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 多表连接和子查询7-8

第五章 多表连接和子查询 本章要点 多表连接的定义 等值连接 不等值连接 外连接 自连接 子查询的语法 子查询的使用 从多个表中取得数据 使用 Oracle 的语法连接多个表 使用表连接从多个表中查询数据 SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2; 在 WHERE 子句中写入连接条件 当多个表中有重名列时,必须在列的名字前加上表名作为前缀 连接的类型 Oracle 8i以前的表连接: 等值连接 -- Equijoin 非等值连接 -- Non-equijoin 外连接 -- Outer join 自连接 -- Self join 连接的类型 Oracle9i的表连接中,8i的语法同样支持。 SQL: 1999 适应性连接: 交叉连接 -- Cross joins 自然连接 -- Natural joins 使用Using子句的连接 完全外连接或者左右外连接 外连接中可以使用任意的连接条件 什么是等值连接? 使用 AND 操作符增加查询条件 使用表的别名 使用表的别名简化了查询 提高了查询的性能 SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e, departments d WHERE e.department_id = d.department_id; 对多表作等值连接查询 为了连接n个表,至少需要n-1个连接条件。例如,为了连接三个表,至少需要两个连接条件 对多表作等值连接查询 SELECT e.employee_id,e.last_name,e.department_id,d.department_id,d.location_id,l.city FROM employees e,departments d,locations l WHERE e.department_id=d.department_id AND d.location_id=l.location_id; 非等值连接 非等值连接 使用非等值连接查询可以查询两个表中具有非等值的相关关系的数据。操作符可以是比较运算符,也可以是between···and 或者是in、like。 如:通过员工信息表的薪水与工资级别表的最低最高值进行比较,找到员工的薪水级别。 SELECT e.last_name,e.salary,s.grade FROM employees e,salgrade s WHERE e.salary BETWEEN s.losal AND s.hisal; 外连接 外连接 使用外连接可以看到不满足连接条件的记录 外连接运算符是 (+) 有左外连接和右外连接 自连接(self-join) 自连接 如:查询员工和其管理者之间的关系,并按“员工姓名 work for 管理者”格式显示。 SELECT worker.last_name||works for||manager.last_name FROM employees worker,employees manager WHERE worker.manager_id=manager.employee_id; 支持SQL1999的新连接标准 包括以下新的TABLE JOIN的句法结构 CROSS JOIN——它在两个表格中创建了一个笛卡尔积,就象是在Oracle8i中没写WHERE时一样 NATURAL JOIN——这是一个很有用的Oracle9i的句法,它通过从WHERE子句中自动连接标准来改善SQL的稳定性 USING子句——它可以通过名字来具体指定连接 支持SQL1999的新连接标准 ON子句——这个句法允许在两个表中为连接具体指定列名 LEFT OUTER JOIN——它返回表格中左边的行和右边的数值,如果没有搭配的行的话,则返回空 RIGHT OUTER JOIN——它返回表格中右边的行和左边的数值,如果没有搭配的行的话,则返回空 FULL OUTER JOIN——它返回的是两个表格中所有的行,用空填满每一个空格。这在Oracle8i中则没有相应的此种句法 SQL1999新连接标准语法 SELECT table1.column, table2.column FROM table1 [CROSS JOIN table2] | [NATURAL JOIN table2] | [JOIN table2 USING (column_name)

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档