资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
表的连接查询1. 表的连接可以分为:内连接+外连接。2. 内连接又可以分为:等值连接+非等值连接+自连接。3. 外连接又可以分为:左外连接+右外连接。4. SQL92语法 + SQL99语法。SQL92语法:1. 表的内连接a) 等值连接:找出每个员工对应的部门名称,要求显示员工名称和部门名称。Select a.ename,b.dname from emp a,dept b where a.deptno=b.deptno;b) 非等值连接:找出每个员工的工资级别,要求显示员工名称,员工工资,工资级别。Select a.ename,a.sal,b.gradeFrom emp a,salgrade bWhere a.sal between b.losal and b.hisal;c) 自连接:找出每个员工对应的经理的名字。显示员工名称和经理名称。解题思路:emp表既可以看做员工表也可以看做经理表。把这张表看做是两张不同的表。员工表中的mgr和经理表中的empno相等。Select a.ename,b.enameFrom emp a,emp bWhere a.mgr = b.empno;2. 表的外连接:找出每个员工对应的部门名称,要求部门名称全部显示出来。显示员工名和部门名。(两张表连接查询,如果要想将其中一张表的数据全部显示,需要用外连接)Select a.ename,b.dnameFrom emp a,dept bWhere a.deptno(+)=b.deptno;/SQL92:将其中一张表的数据全部显示需要在对方表上加“加号”SQL99语法:1. 表的内连接:找出每个员工对应的部门名称。要求显示员工名称和部门名称。Select a.ename,b.dnameFrom emp a join dept b on a.deptno=b.deptno;或者(inner可以省略)Select a.ename,b.dnameFrom emp a inner join dept b on a.deptno=b.deptno;Select a.ename,a.sal,b.gradeFrom emp a inner join salgrade b on a.sal between b.losal and b.hisal;Select a.ename,b.enameFrom emp a inner join emp b on a.mgr=b.empno;2. 表的外连接:找出每个员工对应的部门名称,要求部门名称全部显示出来。显示员工名和部门名。(两张表连接查询,如果要想将其中一张表的数据全部显示,需要用外连接)四种写法:Select a.ename,b.dnameFrom emp a right join dept b on a.deptno=b.deptno; (右连接)或者Select a.ename,b.dnameFrom dept b left join emp a on a.deptno=b.deptno; (左连接)或者Select a.ename,b.dnameFrom emp a right outer join dept b on a.deptno=b.deptno; (右外连接)或者Select a.ename,b.dnameFrom dept b left outer join emp a on a.deptno=b.deptno; (左外连接)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号