实验三 综合查询
一、目的和要求
(1)学习SQL连接查询,掌握查询方法;
(2)学习SQL嵌套查询,掌握查询方法
(3)进一步熟悉SQL查询,掌握查询方法
(4)掌握数据库定义语言。
二、实验设备与准备
计算机:CPU四核i7 6700处理器;内存8G;SATA硬盘2TB硬盘;Intel芯片主板;集成声卡、千兆网卡、显卡;20寸液晶显示器。
环境:Mysql、Sql Server2008、Oracle等
三、实验内容
3.1 实验内容一
3.1.1实验题目
查询每一个员工的姓名和部门名称
3.1.2实验步骤
#查询每一个员工的姓名和部门名称
select name,departname
from deparments,employees
where deparments.deparmentid = employees.deparmentid;
3.1.3 实验结果(截图)
3.1.4 实验结论
利用连接查询,通过employees表和departments表得到部门每一个员工的姓名和部门。
3.2 实验内容二
3.2.1实验题目
查询王林员工所在的部门名称
3.2.2实验步骤
#查询王林员工所在的部门名称
select name,departname
from deparments,employees
where name = '王林' and deparments.deparmentid = employees.deparmentid;
3.2.3 实验结果(截图)
3.2.4 实验结论
利用等值查询,讲限制条件增加到两个从而得到王林所在的部门。
3.3 实验内容三
3.3.1实验题目
查询和王林一个部门的员工姓名
3.3.2实验步骤
#查询和王林一个部门的员工姓名
select name
from employees
where DeparmentID in
(
select deparmentid
from employees
where name = '王林');
3.3.3 实验结果(截图)
3.3.4 实验结论
利用嵌套查询,想查出姓名,再根据一个限制条件的到结果
3.4 实验内容四
3.4.1实验题目
统计各部门的人数
3.4.2实验步骤
#统计各个部门的人数
select departname,count(*)
from employees,deparments
where deparments.deparmentid = employees.deparmentid
group by(departname);
3.4.3 实验结果(截图)
3.4.4 实验结论
用group by对departname进行分组再利用count函数进行统计,得到想要的数据。
3.5 实验内容五
3.5.1实验题目
统计各部门男女员工数
3.5.2实验步骤#统计各部门男女员工数
select departname , sex,count(sex)
from deparments,employees
where employees.deparmentid = deparments.deparmentid
group by departname,sex;
3.5.3 实验结果(截图)
3.5.4 实验结论
用group by对sex进行分组再利用count函数进行统计,得到想要的数据。
3.6 实验内容六
3.6.1实验题目
查询市场部员工的平均工资
3.6.2 实验步骤
#查询市场部员工的平均工资
select avg(income) 平均工资
from salary,deparments,employees
where salary.employeeid = employees.employeeid and departname = '市场部' and deparments.deparmentid = employees.deparmentid;
3.6.3 实验结果
3.6.4 实验结论
用到了连接查询,将三个表连接起来
3.7 实验内容七
3.7.1实验题目
查询超过2个员工的部门名称和员工数量
3.7.2 实验步骤
#查询超过2个员工的部门名称和员工数量
select departname, count(departname)
from deparments,employees
where deparments.deparmentid = employees.deparmentid
group by departname
having count(departname) > 2;
3.7.3 实验结果
3.7.4 实验结论
用到连接查询再用having子句进行限制
3.8 实验内容八
3.8.1实验题目
将员工的情况按收入由低到高排列
3.8.2 实验步骤
#将员工的情况按收入由低到高排列
select *
from deparments,employees left outer join salary on(employees.employeeid = salary.employeeid)
where deparments.deparmentid = employees.deparmentid
order by income;
3.8.3 实验结果
3.8.4 实验结论
用到外连接方式将salary和employees表进行连接,再用order by 子句对income进行限制。
四 实验感想
通过本次实验,我对查询有了更深的了解,也对关系有了进一步的了解,专门的关系运算包括选择、投影、连接、除运算等,也对等值连接、外连接有了更深的了解,并且学会了应用,对之前学的理论知识有了更深的了解,加深了印象。