2)查询工作表Job中参与过项目开发的所有员工编号,要求无重复。 4.使用ORDER BY子句对查询结果进行排序
1)查询雇员表Empl中所有员工的详细信息,结果按员工姓名降序排列。
USE COMPANY GO select * from empl
order by ename desc
2)查询工作表Job中的工作信息,结果按工作天数升序排列。 5.使用LIKE子句进行模糊查询
1)查询所有姓王的员工的编号及姓名,并且以员工编号及员工姓名作为列名。 2)查询雇员表Empl中姓名以“伟”字结尾的员工信息。
USE COMPANY GO select * from empl
where ename like N'%伟'
6.使用聚集函数MIN、MAX进行查询
1)查询雇员表Empl中员工的最低工资,并且列名用“最低工资”表示。
USE COMPANY GO
select MIN(SALARY) AS 最低工资 from empl
2)查询雇员表Empl中员工的最高工资,并且列名用“最高工资”表示。 7.使用聚集函数COUNT进行查询
1)查询雇员表Empl中所有员工的总人数,并且列名用“员工总数”表示。
USE COMPANY GO
select count(ename) AS 员工总人数 from empl
2)查询14号部门的人数,并且列名用“客户中心部人数”表示。 8.使用分组子句GROUP BY与聚集函数MIN、MAX进行查询 1)查询每个部门中年龄最大的员工,显示部门编号和出生日期。
2)分别统计雇员表Empl中各部门员工的最高工资,并且列名分别用“部门编号”及“最高工资”表示。
USE COMPANY GO
select max(salary) as 最高工资,dno as 部门编号 from empl group by dno
having dno='14'or dno='15' or dno='16'
9.使用分组子句GROUP BY与聚集函数SUM、AVG进行查询
1)分别统计雇员表Empl中各部门员工的工资总额,并且列名分别用“部门编号”及“各部门工资总额”表示。
USE COMPANY GO
select sum(salary) as 各部门工资总和,dno as 部门编号 from empl group by dno
having dno='14'or dno='15' or dno='16'
2)分别统计雇员表Empl中各部门员工工资的平均数,并且列名分别用“部门编号”及“各部门工资平均数”表示。
USE COMPANY GO
select avg(salary) as 各部门工资平均数,dno as 部门编号 from empl group by dno
having dno='14'or dno='15' or dno='16'
3)
10.使用分组子句GROUP BY与聚集函数COUNT进行查询
1)统计员工人数多于4人的部门信息,并且列名分别用“部门编号”及“员工人数”表示。
USE COMPANY GO
select count(dno) as 员工人数,dno as 部门编号 from empl group by dno
having dno='14'or dno='15' or dno='16'
USE COMPANY GO
select count(dno) as 员工人数,dno as 部门编号 from empl group by dno
having count(dno)>='4'
2)分别统计工作表Job中各项目的参与开发的员工人数,并且列名分别用“项目编号”及“员工人数”表示。
实验3 数据库的多表连接和子查询
一、 实验目的
本实验的目的是使学生加深对SQL和SQL语言的查询语句的理解。熟练掌握数据库的多表连接查询和子查询。 二、 实验时数 2学时 三、 实验内容 ㈠多表连接查询:
1.对两张数据表使用内连接进行查询
1)查询姓名为“王一伟”的员工所在部门的名称,并且列名用汉字表示。
use company
select depa.dname 部门名称 from empl inner join depa on empl.dno=depa.dno where empl.ename='王一伟'
2)查询编号为“1002”的员工姓名及该员工所在部门的名称,并且列名用汉字表示。
select a.ename 员工姓名, b.dname 部门名称 from empl a join depa b on a.dno=b.dno where a.eno='1002'
2.对多张数据表使用内连接进行查询
1)查询姓名为“陈晨”的员工参与过的所有项目的名称,并且列名用汉字表示。
use company go
select empl.ename 姓名, proj.pname 部门名称 from empl inner join job on empl.eno=job.eno inner join proj on job.pno=proj.pno where empl.ename='陈晨'
2)查询编号为“1202”的员工姓名及该员工参与过的所有项目的名称,并且列名用汉字表示。
select empl.ename 员工姓名, proj.pname 项目名称 from empl join job
on empl.eno=job.eno join proj
on job.pno=proj.pno where empl.eno='1020'
3.对两张数据表使用左连接进行查询
1)使用左连接查询所有员工的基本信息及参与项目开发情况,如果某员工参与过项目开发,则列出该员工所参与的所有项目的编号,否则该项以空值表示。
use company go
select empl.*,job.pno
from empl left outer join job on empl.eno=job.eno
2)使用左连接查询所有员工的基本信息及所在部门名称,如果某员工尚未分配到任何部门,则该员工的部门名称项以空值表示。 4.对两张数据表使用右连接进行查询
1)使用右连接查询所有员工的基本信息及参与项目开发情况,如果某员工参与过项目开发,则列出该员工所参与的所有项目的编号,否则该项以空值表示。
use company go
select empl.*,job.pno
from job right outer join empl on empl.eno=job.eno
2)使用右连接查询所有员工的基本信息及所在部门名称,如果某员工尚未分配到任何部门,则该员工的部门名称项以空值表示。 ㈡子查询: 1.多表单值子查询
1)查询编号为1001的员工的部门名。
use company go
select dname from depa
where dno=(select dno from empl
where eno='1001')
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数据库原理实验讲义(2)在线全文阅读。
相关推荐: