书目: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 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从小到大排列。

以上内容仅供参考