书目:SQL sever 实用教程(第五版)(SQL server 2008版)
本实验使用数据表为实验3中创建的employees、departments、salary表
1.基本查询
(1)对于实验3给出的数据库表的结构,查询每个雇员的所有数据。
思考与练习
- 用select语句查询departments和salary表中所有的数据信息
(2)用select语句查询employees表中每个雇员的地址和电话
思考与练习
- 用select语句查询departments和salary表的一列或若干列
- 查询employees表中的部门编号和性别,要求使用distinct消除重复行
(3)查询employeeID为000001的雇员的地址和电话
思考与练习
- 查询月收入高于2000元的员工编号
- 查询1970年以后出生的员工的姓名和住址
(4) 查询employees表中女雇员的住址和电话,使用as子句将结果中各列的标题分别指定为住址、电话。
思考与练习
- 查询employees表中男员工的姓名和出生日期,要求将各列标题用中文表示
(5) 查询employees表中员工的姓名和性别,要求sex值为1时显示为“男”,为0时显示为“女”。
思考与练习
- 查询employees员工的姓名、住址、和收入水平,2000元以下为显示为低收入,2000~3000元显示为中等收入,3000元以上显示为高收入。
(6) 计算每个雇员的实际收入。
(7)获得员工总数
思考与练习
- 计算salary表中员工月收入的平均数
- 获得employees表中年龄最大的员工编号
- 计算salary表中所有员工的总支出
- 查询财务部雇员的最高和最低实际收入
(8) 找出所有姓王的雇员的部门编号
思考与练习
- 找出所有其住址中含有“中山”的雇员的员工编号及部门编号
- 查找员工编号中倒数第二个数字为“0”的员工的姓名、住址、和学历。
(9) 找出所有收入在2000~3000元之间的员工编号。
思考与练习
- 找出所有部门“1”或“2”工作的雇员的员工编号
(10)使用INTO子句,由表salary创建“收入在1500元以上的员工”表,包括员工编号和收入。
思考与练习
- 使用INTO子句,由表employees创建“男员工”表,包括员工编号和姓名。
2.子查询
(1)查找在财务部工作的雇员的情况。
思考与练习
- 用子查询的方法查找所有收入在2500元以下的雇员的情况。
(2)查找财务部年龄不低于研发部雇员年龄的雇员的姓名。
思考与练习
- 用子查询的方法查找研发部比财务部雇员收入都高的雇员的姓名
(3)查找比所有财务部的雇员收入都高的雇员的姓名
思考与练习
- 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名
3.连接查询
(1)查询每个雇员的情况及其薪水情况
思考与练习
- 查询每个雇员的情况及其工作部门的情况
(2)使用内连接的方法查询名字为“王林”的员工所在的部门。
思考与练习
- 使用内连接的方法查找出不在财务部工作的所有员工信息。
- 使用外连接的方法查找出所有员工的月收入
(3)查找财务部收入在2000元以上的雇员姓名及其薪水详情
思考与练习
- 查询研发部在1976年以前出生的雇员姓名及其薪水详情。
4.使用聚合函数查询
(1)求财务部雇员的平均收入
思考与练习
- 查询财务部雇员的最高和最低收入
(2)求财务部雇员的平均实际收入
思考与练习
- 查询财务部雇员的最高和最低实际收入
(3)求财务部雇员的总人数
思考与练习
- 统计财务部收入在2500元以上的雇员人数
5.查询结果分组和排序
(1)查找employees表中男性和女性的人数。
思考与练习
- 按员工的学历分组,排列出本科、大专和硕士的人数
(2)查找员工数超过2人的部门名称和员工数量。
课本源码查找结果非部门名称
思考与练习
- 按员工的工作年份分组,统计各个工作年份的人数,如工作1年的多少人,工作2年的多少人。
(3)将各雇员的情况按收入有低到高排列。
思考与练习
- 将员工信息按出生时间从小到大排列
- 在order by 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从小到大排列。