SQL实验四 连接查询和嵌套查询
来源:互联网 发布:刷枪软件源码 编辑:程序博客网 时间:2024/05/07 16:05
一、专业、班级学号、姓名、实验时间、地点
专 业:计算机科学与技术专业 班级学号: B04-21-21
姓 名:张坤
实验时间: 2007年4月 18 日 实验地点:A506
二、本实验课的任务
本实验是设计性实验。目的在于使用关系数据库标准语言SQL,掌握基本的连接查询操作:等值连接、非等值连接、自身连接、外连接、掌握嵌套查询操作、带有比较运算符的子查询、带有IN谓词的子查询、带有ANY或ALL谓词的子查询、带有EXISTS谓词的子查询。
三、实验内容:
1.列出至少有一个雇员的所有部门
select deptno ,dname from dept where deptno in
( select distinct deptno from emp);
2.列出薪金比'SMITH'多的所有雇员.
select * from emp where sal>
(select sal from emp where ename='SMITH');
3.列出所有雇员的姓名及其上级的姓名.
select a.ename "雇员",b.ename "上级" from emp a,emp b
where a.mgr=b.empno;
4.列出入职日期早于其直接上级的所有雇员.
select * from emp x where hiredate>
(select hiredate from emp where x.mgr=empno);
或
select * from emp a,emp b
where a.hiredate>b.hiredate and a.mgr=b.empno;
5.列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门
select b.deptno,b.dname,a.ename from emp a,dept b
where a.deptno(+)=b.deptno;
6.列出所有'CLERK'的姓名及其部门名称.
select a.ename,b.dname from emp a,dept b
where a.deptno=b.deptno and a.job='CLERK';
7.列出各种类别的最低薪金,以使最低薪金大于1500
select job, min(sal) from emp
group by job
having min(sal) > 1500;
8.列出各种类别"SALES"工作的雇员的姓名,假定不知道销售部的部门编号.
select ename from emp
where job like 'SALES%';
9.列出薪金高于公司平均水平的所有雇员.
select ename from emp
where sal >(
select avg(sal) from emp);
10.列出与"SCOTT"从事相同工作的所有雇员.
select * from emp
where job=
(select job from emp where ename='SCOTT');
or
select * from emp
where job in
(select job from emp where ename='SCOTT');
11.列出薪金等于给予在部门30工作的雇员的薪金的雇员的所有姓名和薪金
select * from emp
where sal in
(select sal from emp where deptno=30);
12.列出薪金高于在部门30工作的所有雇员的薪金的雇员的姓名和薪金.
select * from emp
where sal>all
(select sal from emp where deptno=30);
or
select * from emp
where sal>
(select max(sal) from emp where deptno=30);
13.列出在每个部门工作的雇员的数量以及其他信息.
select b.deptno,b.dname,count(a.ename) from emp a,dept b
where a.deptno(+)=b.deptno
group by b.deptno,b.dname;
14.列出所有雇员的雇员名称、部门名称和薪金.
select a.ename,b.dname,a.sal from emp a,dept b
where a.deptno=b.deptno;
15.列出从事同一种工作但属于不同部门的雇员的不同组合.
select a.deptno,a.job,b.deptno,b.job from emp a,emp b
where a.deptno<>b.deptno and a.job=b.job ;
16.列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员.
select * from dept;
or
select * from dept
where exists(select distinct deptno from emp )
17.列出各种类别工作的最低工资.
select job,min(sal) from emp group by job;
18.列出各个部门MANAGER的最低薪金.
select deptno,min(sal) from emp
where job='MANAGER'
group by deptno ;
19.列出按计算的字段排序的所有雇员的年薪.
select ename "姓名",sal*12 "年薪" from emp
order by sal*12;
20.列出薪金水平处于第四位的雇员.
待解决中.......
- SQL实验四 连接查询和嵌套查询
- SQL 语句(四)--------------数据查询(嵌套查询)
- SQL中的连接查询与嵌套查询
- SQL嵌套查询和链接查询
- 实验3.4 嵌套查询
- SQL查询 子查询 和 嵌套查询
- SQL Sql连接查询和联合查询
- 关于Sql嵌套查询与连接查询的转换
- Oracle: 四、Oracle连接查询,子查询(相关子查询,嵌套子查询)
- pl/sql 子查询和连接查询
- sql关联查询和连接查询
- Sql连接查询和联合查询
- Sql连接查询和联合查询
- Sql连接查询和联合查询
- Sql连接查询和联合查询
- 数据库 - 连接查询、嵌套查询、集合查询
- SQL查询--连接查询
- sql嵌套子查询
- udev的实现原理
- 好书《无毒一身轻—21天改变体质》- 总结
- 从西直门走到五道口
- 转载:盘点开放源码软件
- new和override的区别?
- SQL实验四 连接查询和嵌套查询
- 如何循序渐进向DotNet架构师发展
- 线缆
- 一个扑克牌程序
- Velocity遍历List和Map
- 该学Java或.NET?
- 使用myeclipse 应用struts2 + spring + hibernate 实现CRUD
- 易经与理性管理
- WAP网站开发一