SQL实验四 连接查询和嵌套查询

原创 2007年04月27日 22:39:00

一、专业、班级学号、姓名、实验时间、地点

    业:计算机科学与技术专业          班级学号: B042121

    名:张坤

实验时间: 20074 18                  实验地点:A506

二、本实验课的任务

本实验是设计性实验。目的在于使用关系数据库标准语言SQL掌握基本的连接查询操作:等值连接、非等值连接、自身连接、外连接、掌握嵌套查询操作、带有比较运算符的子查询带有IN谓词的子查询带有ANYALL谓词的子查询带有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.列出薪金水平处于第四位的雇员.

 待解决中.......

相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

数据库 - 连接查询、嵌套查询、集合查询

连接查询连接查询:同时涉及多个表的查询 连接条件或连接谓词:用来连接两个表的条件 一般格式: [.] [.] [.] BETWEEN [.] AND [.]连接字段:连接谓词中的列名称...

SQL中的连接查询与嵌套查询

连接查询 若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询, 包括: 1、等值连接查询 2、自然连接查询 3、非等值连接查询 4、自身连接查询 5、外连接查询 6...
  • CCSUXWZ
  • CCSUXWZ
  • 2017年04月13日 23:09
  • 2472

用SQL语言进行复杂查询:对各表中的数据进行不同条件的连接查询和嵌套查询: 1)查询每个学生及其选课情况; 2)查询每门课的间接先修课

用SQL语言进行复杂查询:对各表中的数据进行不同条件的连接查询和嵌套查询: 1)查询每个学生及其选课情况; 2)查询每门课的间接先修课...

SQL语句,多表查询,连接查询,嵌套查询,集合操作,有IN谓词,有比较运算符,有ANY\EXIST谓词的查询

---查询每个学生及选修课程的情况 SELECT S.*,SC.*  FROM S,SC WHERE S.SNO=SC.SNO; ---查询每个学生及选修课程,这个是用自然连接弄的,结果同上 ...

sql数据库的嵌套查询

  • 2014年03月13日 10:58
  • 51KB
  • 下载

sql嵌套查询

  • 2012年08月18日 08:57
  • 1KB
  • 下载

sql复杂嵌套查询

最近在做各类小应用,用到了MYSQL,有时候会用到一些比较复杂的嵌套查询,在研究怎么通过SQL实现这些。 假设下面这张表(stu)描述学生的基本信息: id name grade 1 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL实验四 连接查询和嵌套查询
举报原因:
原因补充:

(最多只允许输入30个字)