多表查询Word参考

上传人:鲁** 文档编号:507944044 上传时间:2024-02-01 格式:DOC 页数:6 大小:33KB
返回 下载 相关 举报
多表查询Word参考_第1页
第1页 / 共6页
多表查询Word参考_第2页
第2页 / 共6页
多表查询Word参考_第3页
第3页 / 共6页
多表查询Word参考_第4页
第4页 / 共6页
多表查询Word参考_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《多表查询Word参考》由会员分享,可在线阅读,更多相关《多表查询Word参考(6页珍藏版)》请在金锄头文库上搜索。

1、多表查询内连接2014年1月7日9:57等值连接:查询emp表,dept表中雇员的编号、姓名、工作、部门名称。select empno,ename,job,dname,loc from emp e,dept d where e.deptno=d.deptno;(笛卡尔集)不等值连接:根据salgrade表中最低工资和最高工资,查询emp表员工的工资级别。 select e.empno,e.ename,e.sal,sg.grade from salgrade sg, emp e where e.sal between sg.losal and sg.hisal;自然连接:(自然连接就是在两张表中

2、寻找那些数据类型和列名都相同的记录)natural join 省略了where语句,自动进行等值匹配。select emp.empno,emp.ename,emp.sal,dept.loc from emp natural join dept ;外连接2014年4月8日10:15左连接:select ename,dname from emp e,dept d where e.deptno=d.deptno (+); select ename,dname from emp e left join dept d on e.deptno=d.deptno右连接:select ename,dname

3、from emp e, dept d where e.deptno(+)=d.deptno;全连接: select ename,dname from emp e full join dept d on e.deptno=d.deptno;自连接:(同一张表的连接查询)显示员工上级领导的姓名:(看成两个表)select e.ename 领导,l.ename 员工 from emp e,emp l where e.empno=l.mgr;子查询子查询2014年4月8日10:28当完成查询时,需要经过多个步骤才能完成,并且一个查询结果是另外一个查询结果条件时,可以想起子查询:l 单行子查询(子查询中

4、返回一行数据的子查询)如:显示与SMITH部门相同的所有员工select * from emp where deptno=(select deptno from emp where ename=SMITH);l 多行子查询(子查询中返回多行数据的子查询)如,查询工资低于2000的雇员所属部门名称。SELECT dname FROM dept WHERE deptno IN (SELECT deptno FROM emp WHERE salall(select sal from emp where deptno=30);【思考】:还有其他查询方法么?l any操作符如何显示工资比部门30的任意一

5、个员工的工资高的员工的姓名、工资和部门号Select ename,sal,deptno from emp where salany(select sal from emp where deptno=30);【思考】:还有其他查询方法么?l 多列子查询(是指返回多列数据)如何查询与SMITH的部门和岗位完全相同的所有员工Select * from emp where(deptno,job)=(select deptno,job from emp where ename=SMITH)l 分页查询1. 根据ROWID来分select * from t_xiaoxi where rowid in(se

6、lect rid from (select rownum rn,rid from(select rowid rid,cid from t_xiaoxi order by cid desc) where rownum9980) order by cid desc;执行时间0.03秒2. 按分析函数来分select * from (select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t) where rk9980;执行时间1.01秒3.按ROWNUM来分SELECT * FROM (SELECT A.*, ROWNUM

7、RN FROM (select ROWNUM from emp) A WHERE ROWNUM =6练习2014年4月8日10:311. 如何查询与部门10相同的工作的雇员名字2. 列出员工表中每个部门的员工数(员工数必须大于 3),和部门名称 3. 找出工资比 jones 多的员工 4. 列出所有员工的姓名和其上级的姓名 5. 以职位分组,找出平均工资最高的两种职位 6. 查找出不在部门 20,且比部门 20 中任何一个人工资都高的员工姓名、部门名称 7. 得到平均工资大于 2000 的工作职种 8. 得到每个月工资总数最少的那个部门的部门编号,部门名称,部门位置 9. 查找出职位和MARTIN 或者SMITH一样的员工的平均工资 10. 查找出不属于任何部门的员工 11. 查询出 king 所在部门的工作年限最大的员工名字 文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意! /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号