SQLSERVER2008实用教育资料实验参考.答案(实验资料).doc
《SQLSERVER2008实用教育资料实验参考.答案(实验资料).doc》由会员分享,可在线阅读,更多相关《SQLSERVER2008实用教育资料实验参考.答案(实验资料).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验 4 数据库的查询和视图 一、SELECT 语句的基本使用 1. 查询 Employees 表中所有数据 2. 查询 Employees 表中指定字段数据 3. 查询 Employees 表中的部门号和性别,要求使用 Distinct 消除重复行 4. 使用 WHERE 子句查询表中指定的数据 查询编号为000001的雇员的地址和电话 查询月收入高于 2000 元的员工号码 查询 1970 年以后出生的员工的姓名和住址 5. 使用 AS 子句为表中字段指定别名 查询 Employees 表中女雇员的地址和电话,并将列标题显示为地址和电话 查询 Employees 表中男雇员的姓名和出生日期
2、,并将列标题显示为姓名和出生日期 6. 使用使用 CASE 子句 查询 Employees 表中员工的姓名和性别,要求 Sex 值为 1 时显示“男” ,为 0 时显示“女” 查询 Employees 表中员工的姓名、住址和收入水平,2000 元以下显示为低收入, 20003000 地显示为中等收入,3000 元以上显示为高收入。 7. 使用 SELECT 语句进行简单计算 计算每个雇员的实际收入 8. 使用内置函数 获得员工总数 计算 Salary 表中员工月收入的平均数 获得 Employees 表中最大的员工号码 计算 Salary 表中所有员工的总支出 查询财务部雇员的最高和最低实际收
3、入 9. 模糊查询 找出所有姓王的雇员的部门号 找出所有地址中含有“中山”的雇员的号码及部门号 找出员工号码中倒数第二个数字为 0 的员工的姓名、地址和学历 10. BetweenAnd和 Or 的使用 找出收入在 20003000 元之间的雇员编号 找出部门为“1”或“2”的雇员的编号 11. 使用 INTO 子句,由源表创建新表 由表 Salary 创建“SalaryNew”表,要求包括编号和收入,选择收入在 1500 元以上的雇员 由表 Employees 创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工二、子查询的使用 1. 查找在财务部工作的雇员情况 2. 用子
4、查询的方法查找所有收入在 2500 以下的雇员的情况 3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名 4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名 5. 查找比所有财务部的雇员收入都高的雇员的姓名 6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名三、连接查询的使用1. 查询每个雇员的情况及薪水的情况 2. 查询每个雇员的情况及其工作部门的情况 3. 使用内连接的方法查询名字为“王林”的雇员所在的部门 4. 使用内连接的方法查找出不在财务部工作的所有雇员信息 5. 使用外连接方法查找出所有员工的月收入 6. 查找财务部收入在 2000 元以上的雇员姓名及
5、其薪水详情 7. 查询研发部在 1976 年以前出生的雇员姓名及其薪水详请四、聚合函数的使用 1. 求财务部雇员的平均收入 2. 查询财务部雇员的最高和最低收入 3. 求财务部雇员的平均实际收入 4. 查询财务部雇员的最高和最低实际收入 5. 求财务部雇员的总人数 6. 统计财务部收入在 2500 元以上的雇员人数五、GROUP BY、ORDER BY 子句的使用 1. 查找 Employees 表中男性和女性的人数 2. 按部门列出在该部门工作的员工的人数 3. 按员工的学历分组,排列出本科、大专、硕士的人数 4. 查找员工数超过 2 的部门名称和雇员数量 5. 按员工的工作年份分组,统计各
6、个工作年份的人数,例如工作 1 年的多少人,工作 2 年 的多少人 6. 将雇员的情况按收入由低到高排列 7. 将员工信息按出生时间从小到大排列 8. 在 ORDER BY 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从 大到小排列六、视图的使用 1. 创建视图 (1)在数据库 YGGL 上创建视图 Departments_View,视图包含 Department 表的全部列 (2)创建视图 Employees_Departments_View,视图包含员工号码、姓名、所在部门名称 (3)创建视图 Employees_Salary_View,视图包含员工号码、姓名和实际收入三
7、列 2. 查询视图 从视图 Employees_Salary_View 中查询出姓名为“王林”的员工的实际收入 3. 更新视图 (1)向视图 Departments_View 中添加一条记录(6 , 广告部 , 广告业务 ) 执行完命令后,分别查看 Departments_View 和 Department 表中发生的变化 (2)尝试向 Employees_Departments_View 中添加一条记录,看看会发生什么情况 (3)尝试向 Employees_Salary_View 中添加一条记录,看看会发生什么情况 (4)将视图 Departments_View 中,部门号为6的部门名称修改
8、为生产车间 (5)删除视图 Departments_View 中最新增加的的一条记录 4. 删除视图 Employees_Departments_View 5. 在界面工具中操作视图一、SELECT 语句的基本使用 1. 查询 Employees 表中所有数据 SELECT * FROM Employees;2. 查询 Employees 表中指定字段数据 SELECT EmployeeID,Name,DepartmentID FROM Employees;3. 查询 Employees 表中的部门号和性别,要求使用 Distinct 消除重复行 SELECT Distinct Departm
9、entID,Sex FROM Employees;4. 使用 WHERE 子句查询表中指定的数据 查询编号为000001的雇员的地址和电话 Select Address,PhoneNumber FROM Employees WHERE EmployeeID=000001;查询月收入高于 2000 元的员工号码 SELECT EmployeeID FROM Salary WHERE InCome2000;查询 1970 年以后出生的员工的姓名和住址 SELECT Name,Address FROM Employees WHERE YEAR(Birthday)1970;SELECT Name,Ad
10、dress FROM Employees WHERE Birthday1970;5. 使用 AS 子句为表中字段指定别名 查询 Employees 表中女雇员的地址和电话,并将列标题显示为地址和电话SELECT Address AS 地址,PhoneNumber AS 电话 FROM Employees;查询 Employees 表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期SELECT Name AS 姓名,Birthday AS 出生日期 FROM Employees WHERE Sex=1;6. 使用使用 CASE 子句 查询 Employees 表中员工的姓名和性别,要求
11、Sex 值为 1 时显示“男” ,为 0 时显示“女”SELECT Name AS 姓名, CASEWHEN Sex=1 THEN 男WHEN Sex=0 THEN 女 ENDAS 性别FROM Employees;查询 Employees 表中员工的姓名、住址和收入水平,2000 元以下显示为低收入, 20003000 地显示为中等收入,3000 元以上显示为高收入。 SELECT a.Name AS 姓名,a.Address as 住址, CASEWHEN b.InCome3000 THEN 高收入 ENDAS 收入水平 FROM Employees a,Salary bWHERE a.E
12、mployeeID=b.EmployeeID;7. 使用 SELECT 语句进行简单计算 在 Salary 表中,计算每个雇员的实际收入,并显示雇员编号和实际收入SELECT EmployeeID AS 雇员编号,InCome-OutCome AS 实际收入 FROM Salary;8. 使用聚合函数 获得员工总数 SELECT COUNT(*) FROM Employees;计算 Salary 表中员工月收入的平均数SELECT AVG(InCome) AS 平均收入 FROM Salary;获得 Employees 表中最大的员工号码SELECT MAX(EmployeeID) AS 雇员
13、编号 FROM Employees;计算 Salary 表中所有员工的总支出SELECT SUM(OutCome) AS 总支出 FROM Salary;查询财务部雇员的最高和最低实际收入SELECT MAX(InCome-OutCome) AS 最高收入,MIN(InCome-OutCome) AS 最低收入 FROM Salary;9. 模糊查询 找出所有姓王的雇员的部门号SELECT DepartmentID AS 部门号 FROM Employees WHERE Name like 王%;找出所有地址中含有“中山”的雇员的编号及部门号SELECT EmployeeID AS 雇员编号,
14、DepartmentID AS 部门号 FROM Employees WHERE Address like %中山%找出雇员编号中倒数第二个数字为 0 雇员的编号的姓名、地址和学历SELECT EmployeeID AS 雇员编号,Name AS 姓名,Address AS 地址,Education AS 学历 FROM Employees WHERE SUBSTRING(EmployeeID,5,1)=0;10. BetweenAnd和 Or 的使用 找出收入在 20003000 元之间的雇员编号 SELECT EmployeeID,InCome FROM Salary WHERE InCo
15、me BETWEEN 2000 AND 3000;找出部门为“1”或“2”的雇员的编号 SELECT EmployeeID,DepartmentID FROM Employees WHERE DepartmentID=1 OR DepartmentID=2;11. 使用 INTO 子句,由源表创建新表 由表 Salary 创建“SalaryNew”表,要求包括编号和收入,选择收入在 1500 元以上的雇员 SELECT EmployeeID,InComeINTO SalaryNewFROM SalaryWHERE InCome1500;由表 Employees 创建“EmployeesNew”
16、表,要求包括编号和姓名,选择所有男员工 SELECT EmployeeID,NameINTO EmployeesNewFROM EmployeesWHERE Sex=1;二、子查询的使用 1. 查找在财务部工作的雇员情况-分析:雇员表和部门表通过DepartmentID进行关联-1)在Departments表中查找财务部的编号-2)在Employees表中查找部门的雇员情况 SELECT * FROM Employees WHERE DepartmentID =(SELECT DepartmentID FROM Departments WHERE DepartmentName=财务部);2.
17、用子查询的方法查找所有收入在 2500 以下的雇员的情况-分析:员工表和收入表通过EmployeeID进行关联 SELECT * FROM Employees WHERE EmployeeID IN (SELECT EmployeeID FROM Salary WHERE InCome ALL(SELECT Birthday FROM Employees WHERE DepartmentID in(SELECT DepartmentID FROM Departments WHERE DepartmentName=研发部);4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名-1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLSERVER2008 实用 教育 资料 实验 参考 答案
限制150内