第8章 子查询与高级查询

第8章 子查询与高级查询

ID:20116427

大小:288.50 KB

页数:36页

时间:2018-10-10

第8章 子查询与高级查询_第1页
第8章 子查询与高级查询_第2页
第8章 子查询与高级查询_第3页
第8章 子查询与高级查询_第4页
第8章 子查询与高级查询_第5页
资源描述:

《第8章 子查询与高级查询》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章子查询和高级查询连接查询基本含义同时涉及多个表的查询称为连接查询用来连接两个表的条件称为连接条件或连接谓词 一般格式:比较运算符:=、>、<、>=、<=、!=[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2>AND[<表名2>.]<列名3>连接字段 连接谓词中的列名称为连接字段 连接条件中的各连接字段类型必须是可比的,但不必是相同的连接查询SQL中连接查询的主要类型广义笛卡尔积等值连接(含自然连接)非等值连接查询自身连接查询外连接查询复合条件连接查询连接查询广

2、义笛卡尔积 不带连接谓词的连接,很少使用SELECTemp.*,dept.*FROMemp,dept;连接查询等值连接 连接运算符为=的连接操作任何子句中引用表1和表2中同名属性时,都必须加表名前缀。引用唯一属性名时可以加也可以省略表名前缀。 例:查询每个员工及其所在部门的情况。SELECTemp.*,dept.*FROMemp,deptWHEREemp.deptno=dept.deptno;[<表名1>.]<列名1>=[<表名2>.]<列名2>连接查询自然连接 等值连接的一种特殊情况,把目标列中重复的属性列去掉。例:查询每个员工及其所在部门的情

3、况。SELECTemp.*,dname,locFROMemp,deptWHEREemp.deptno=dept.deptno;连接查询非等值连接 连接运算符不是=的连接操作 比较运算符:>、<、>=、<=、!=[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2>AND[<表名2>.]<列名3>例:查询每个员工编号,姓名,工作,工资及其工资等级。Selectempno,ename,job,sal,gradefromemp,salgradeWhereemp.salb

4、etweensalgrade.hisalandsalgrade.lowsalSelectempno,ename,job,sal,gradefromempe,salgradesWheree.salbetweens.hisalands.lowsal连接查询自身连接 一个表与其自己进行连接,称为表的自身连接需要给表起别名以示区别由于所有属性名都是同名属性,因此必须使用别名前缀例:查询雇员的姓名及其经理的姓名.SELECTe1.ename,e2.enameFROMempe1,empe2WHEREe1.mgr=e2.empno;练一练现要求创建一张国家表,

5、表里有一个字段名为”国家名称”,内容如下:国家名称中国美国巴西荷兰要求通过查询实现对战列表.例:查询每个雇员的姓名,工作,所在部门名称和其直接上级领导的姓名。SELECTe1.ename,e1.job,d.dname,e2.enameFROMempe1,empe2,deptdWHEREe1.mgr=e2.empnoande1.deptno=d.deptno;练一练查询每个雇员的姓名,工资,部门名称,工资在公司的等级,以及其领导的姓名,领导的工资等级.现在要求按照以下的样式显示工资等级:1:第五等工资2:第四等工资3:第三等工资4:第二等工资5:第

6、一等工资连接查询外连接(左连接右连接)外连接与普通连接的区别普通连接操作只输出满足连接条件的元组外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出例:查询每个雇员及其所在部门的情况,如果部门中没有员工该部门的信息也要输出。SELECTempno,ename,d.deptno,dname,locfromempe,deptdWheree.deptno(+)=d.deptno(+)例:查询所有雇员的姓名及其领导的姓名。SELECTe1.ename,e2.enameFROMempe1,empe2WHEREe1.mgr=e2.empno(

7、+);连接查询交叉连接(crossJOIN)SELECT*FROMDeptcrossJOINEmp连接查询自然连接(NATURALJOIN)自动进行关联字段的匹配SELECTDName,ENameFROMDeptNATURALJOINEmp列出部门名称以及在部门中工作的员工姓名连接查询USING在满足以下限制时可以使用USING子句对连接条件进行简化查询必须是等连接的等连接中的列必须是同名select*fromempejoindeptdusing(deptno)wheredeptno=30;在using子句中引用列时不要使用表名或别名,否则会出错

8、连接查询ON用于自定义连接条件select*fromempejoindeptdOne.deptno=d.deptnowheredeptn

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

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

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