Oracle Les03_多表查询

Oracle Les03_多表查询

ID:44274025

大小:510.50 KB

页数:34页

时间:2019-10-20

Oracle Les03_多表查询_第1页
Oracle Les03_多表查询_第2页
Oracle Les03_多表查询_第3页
Oracle Les03_多表查询_第4页
Oracle Les03_多表查询_第5页
资源描述:

《Oracle Les03_多表查询》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、多表查询目标通过本章学习,您将可以:使用等值和不等值连接在SELECT语句中查询多个表中的数据。使用外连接查询不满足连接条件的数据。使用自连接。从多个表中获取数据EMPLOYEESDEPARTMENTS……笛卡尔集笛卡尔集会在下面条件下产生:省略连接条件连接条件无效所有表中的所有行互相连接为了避免笛卡尔集,可以在WHERE加入有效的连接条件。笛卡尔集笛卡尔集: 20x8=160行EMPLOYEES(20行)DEPARTMENTS(8行)……EquijoinNon-equijoinOuterjoinSelfjoin连接的类型Cros

2、sjoinsNaturaljoinsUsingclauseFullortwosidedouterjoinsArbitraryjoinconditionsforouterjoinsOracle提供的连接(8i或更早):适用于SQL:1999的连接:Oracle连接使用连接在多个表中查询数据。在WHERE字句中写入连接条件。在表中有相同列时,在列名之前加上表名前缀。SELECTtable1.column,table2.columnFROMtable1,table2WHEREtable1.column1=table2.column2;等

3、值连接EMPLOYEESDEPARTMENTS外键主键……SELECTemployees.employee_id,employees.last_name,employees.department_id,departments.department_id,departments.location_idFROMemployees,departmentsWHEREemployees.department_id=departments.department_id;等值连接…多个连接条件与AND操作符EMPLOYEESDEPARTMENTS

4、……区分重复的列名使用表名前缀在多个表中区分相同的列。使用表名可以提高效率。在不同表中具有相同列名的列可以用表的别名加以区分。SELECTe.employee_id,e.last_name,e.department_id,d.department_id,d.location_idFROMemployeese,departmentsdWHEREe.department_id=d.department_id;表的别名使用别名可以简化查询。使用表名前缀可以提高执行效率。连接多个表EMPLOYEESLOCATIONSDEPARTMENTS

5、连接n个表,至少需要n-1个连接条件。例如:连接三个表,至少需要两个连接条件。…非等值连接EMPLOYEESJOB_GRADESEMPLOYEES表中的列工资应在JOB_GRADES表中的最高工资与最低工资之间…非等值连接SELECTe.last_name,e.salary,j.grade_levelFROMemployeese,job_gradesjWHEREe.salaryBETWEENj.lowest_salANDj.highest_sal;…外连接EMPLOYEESDEPARTMENTS190号部门没有员工…外连接语法使用

6、外连接可以查询不满足连接条件的数据。外连接的符号是(+)。SELECTtable1.column,table2.columnFROMtable1,table2WHEREtable1.column(+)=table2.column;SELECTtable1.column,table2.columnFROMtable1,table2WHEREtable1.column=table2.column(+);SELECTe.last_name,e.department_id,d.department_nameFROMemployeese,d

7、epartmentsdWHEREe.department_id(+)=d.department_id;外连接…自连接EMPLOYEES(WORKER)EMPLOYEES(MANAGER)WORKER表中的MANAGER_ID和MANAGER表中的MANAGER_ID相等……自连接SELECTworker.last_name

8、

9、'worksfor'

10、

11、manager.last_nameFROMemployeesworker,employeesmanagerWHEREworker.manager_id=manager.employee

12、_id;…使用SQL:1999语法连接使用连接从多个表中查询数据:SELECTtable1.column,table2.columnFROMtable1[CROSSJOINtable2]

13、[NATURALJOINtable2]

14、[JOINtable

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。