• / 34
  • 下载费用:10 金币  

Oracle Les03_多表查询.ppt

关 键 词:
Oracle Les03_多表查询.ppt
资源描述:
多表查询,目标,通过本章学习,您将可以: 使用等值和不等值连接在SELECT 语句中查询多个表中的数据。 使用外连接查询不满足连接条件的数据。 使用自连接。,从多个表中获取数据,EMPLOYEES,DEPARTMENTS,,,,…,…,笛卡尔集,笛卡尔集会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件。,笛卡尔集,EMPLOYEES (20行),DEPARTMENTS (8行),…,…,Equijoin Non-equijoin Outer join Self join,连接的类型,Cross joins Natural joins Using clause Full or two sided outer joins Arbitrary join conditions for outer joins,Oracle 提供的连接 (8i 或更早):,适用于SQL: 1999的连接:,Oracle 连接,使用连接在多个表中查询数据。在 WHERE 字句中写入连接条件。 在表中有相同列时,在列名之前加上表名前缀。,SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2;,等值连接,EMPLOYEES,DEPARTMENTS,,,…,…,,SELECT employees.employee_id, employees.last_name, employees.department_id, departments.department_id,departments.location_id FROM employees, departments WHERE employees.department_id = departments.department_id;,等值连接,,,…,多个连接条件与 AND 操作符,EMPLOYEES,DEPARTMENTS,,…,…,区分重复的列名,使用表名前缀在多个表中区分相同的列。 使用表名可以提高效率。 在不同表中具有相同列名的列可以用表的别名加以区分。,,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;,表的别名,使用别名可以简化查询。 使用表名前缀可以提高执行效率。,,,,,,,,,,连接多个表,EMPLOYEES,LOCATIONS,DEPARTMENTS,连接 n个表,至少需要 n-1个连接条件。 例如:连接三个表,至少需要两个连接条件。,…,,,非等值连接,EMPLOYEES,JOB_GRADES,,,…,,非等值连接,SELECT e.last_name, e.salary, j.grade_level FROM employees e, job_grades j WHERE e.salary BETWEEN j.lowest_sal AND j.highest_sal;,,…,,外连接,EMPLOYEES,DEPARTMENTS,,…,外连接语法,使用外连接可以查询不满足连接条件的数据。 外连接的符号是 (+)。,SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column(+) = table2.column;,SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column = table2.column(+);,,SELECT e.last_name, e.department_id, d.department_name FROM employees e, departments d WHERE e.department_id(+) = d.department_id ;,外连接,,…,,自连接,EMPLOYEES (WORKER),EMPLOYEES (MANAGER),…,…,,自连接,SELECT worker.last_name || ' works for ' || manager.last_name FROM employees worker, employees manager WHERE worker.manager
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:Oracle Les03_多表查询.ppt
链接地址:https://www.weizhuannet.com/p-7357365.html
微传网是一个办公文档、学习资料下载的在线文档分享平台

微传网博客

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开