欢迎来到天天文库
浏览记录
ID:40357492
大小:411.10 KB
页数:48页
时间:2019-07-31
《复杂查询-实现多表数据的访问》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、从多表中显示数据目标完成本课后,您应当能够执行下列操作:写SELECT语句使用等值和非等值连接从多个表中访问数据使用外连接查看不满足连接条件的数据使用一个自连接,连接一个表到它自己大纲笛卡尔积连接的类型ORACLE的所有连接Equijoin等值Non-equijoin非等值Outerjoin外连接Selfjoin自连接SQL:1999适应性连接Crossjoins交叉连接Naturaljoins自然连接Usingclause使用子句Fullortwosidedouterjoins全连接或双向外连接对于外连接的任意
2、连接条件从多表中获得数据EMPLOYEESDEPARTMENTS……笛卡尔乘积笛卡尔乘积的形成,当:一个连接条件被遗漏时一个连接条件不正确时在第一个表中的所有行被连接到第二个表的所有行时为了避免笛卡尔乘积的形成,在WHERE子句中应当总是包含正确的连接条件笛卡尔乘积的产生笛卡尔乘积20x8=160rowsEMPLOYEES(20rows)DEPARTMENTS(8rows)……大纲笛卡尔积连接的类型ORACLE的所有连接Equijoin等值Non-equijoin非等值Outerjoin外连接Selfjoin自连
3、接SQL:1999适应性连接Crossjoins交叉连接Naturaljoins自然连接Usingclause使用子句Fullortwosidedouterjoins全连接或双向外连接对于外连接的任意连接条件Equijoin等值Non-equijoin非等值Outerjoin外连接Selfjoin自连接连接的类型Crossjoins交叉连接Naturaljoins自然连接Usingclause使用子句Fullortwosidedouterjoins全连接或双向外连接Arbitraryjoinconditionsf
4、orouterjoins对于外连接的任意连接条件SQL:1999适应连接:Oracle所有的连接(8i以前):用Oracle语法连接表使用一个连接从多个表中查询数据在WHERE子句中写连接条件.当多个表中有相同的列名时,将表名作为列名的前缀SELECTtable1.column,table2.columnFROMtable1,table2WHEREtable1.column1=table2.column2;大纲笛卡尔积连接的类型ORACLE的所有连接Equijoin等值Non-equijoin非等值Outerjo
5、in外连接Selfjoin自连接SQL:1999适应性连接Crossjoins交叉连接Naturaljoins自然连接Usingclause使用子句Fullortwosidedouterjoins全连接或双向外连接对于外连接的任意连接条件什么是等值连接?EMPLOYEESDEPARTMENTSForeignkeyPrimarykey……SELECTemployees.employee_id,employees.last_name,employees.department_id,departments.depart
6、ment_id,departments.location_idFROMemployees,departmentsWHEREemployees.department_id=departments.department_id;用等值连接返回记录…使用AND操作符附加搜索条件EMPLOYEESDEPARTMENTS……限制不明确的列名在多表中使用表前缀限制修饰列名用表前缀改善性能用列别名区别有相同名称,但在不同表中的列SELECTe.employee_id,e.last_name,e.department_id,d.d
7、epartment_id,d.location_idFROMemployeese,departmentsdWHEREe.department_id=d.department_id;使用表别名使用表别名简化查询使用表别名改善性能.多于两个表的连接EMPLOYEESLOCATIONSDEPARTMENTS为了连接n个表,你最少需要n-1个连接条件。例如,为了连接3个表,最少需要两个连接…大纲笛卡尔积连接的类型ORACLE的所有连接Equijoin等值Non-equijoin非等值Outerjoin外连接Selfjoi
8、n自连接SQL:1999适应性连接Crossjoins交叉连接Naturaljoins自然连接Usingclause使用子句Fullortwosidedouterjoins全连接或双向外连接对于外连接的任意连接条件非等值连接EMPLOYEESJOB_GRADES在EMPLOYEES表中的工资必须在JOB_GRADES表中的最低工资和最高工资之间…用非等值连接返回记录SEL
此文档下载收益归作者所有