ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:20.96KB ,
资源ID:3546029      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3546029.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQLSERVER实用教程实验参考问题详解实验4.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SQLSERVER实用教程实验参考问题详解实验4.docx

1、SQLSERVER实用教程实验参考问题详解实验4实验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表中所有员工的总支出查询财务部雇员的最高和最低实际收入9. 模糊查询找出所有姓王的雇员的部门号找出所有地址中含有“中山”的雇员的号码及部门号找

3、出员工号码中倒数第二个数字为0的员工的姓名、地址和学历10. BetweenAnd和Or的使用找出收入在20003000元之间的雇员编号找出部门为“1”或“2”的雇员的编号11. 使用INTO子句,由源表创建新表由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工二、子查询的使用1. 查找在财务部工作的雇员情况2. 用子查询的方法查找所有收入在2500以下的雇员的情况3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名4. 用子查询的方法查找研发部比所有财务部雇

4、员收入都高的雇员的姓名5. 查找比所有财务部的雇员收入都高的雇员的姓名6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名三、连接查询的使用1. 查询每个雇员的情况及薪水的情况2. 查询每个雇员的情况及其工作部门的情况3. 使用内连接的方法查询名字为“王林”的雇员所在的部门4. 使用内连接的方法查找出不在财务部工作的所有雇员信息5. 使用外连接方法查找出所有员工的月收入6. 查找财务部收入在2000元以上的雇员姓名及其薪水详情7. 查询研发部在1976年以前出生的雇员姓名及其薪水详请四、聚合函数的使用1. 求财务部雇员的平均收入2. 查询财务部雇员的最高和最低收入3. 求财务部雇员

5、的平均实际收入4. 查询财务部雇员的最高和最低实际收入5. 求财务部雇员的总人数6. 统计财务部收入在2500元以上的雇员人数五、GROUP BY、ORDER BY子句的使用1. 查找Employees表中男性和女性的人数2. 按部门列出在该部门工作的员工的人数3. 按员工的学历分组,排列出本科、大专、硕士的人数4. 查找员工数超过2的部门名称和雇员数量5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人6. 将雇员的情况按收入由低到高排列7. 将员工信息按出生时间从小到大排列8. 在ORDER BY 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按

6、实际收入从大到小排列六、视图的使用1. 创建视图(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列(2)创建视图Employees_Departments_View,视图包含员工号码、姓名、所在部门名称(3)创建视图Employees_Salary_View,视图包含员工号码、姓名和实际收入三列2. 查询视图从视图Employees_Salary_View中查询出姓名为“王林”的员工的实际收入3. 更新视图(1)向视图Departments_View中添加一条记录(6,广告部,广告业务)执行完命令后,分别查看Departments_View

7、和Department表中发生的变化(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况(4)将视图Departments_View中,部门号为6的部门名称修改为生产车间(5)删除视图Departments_View中最新增加的的一条记录4. 删除视图 Employees_Departments_View5. 在界面工具中操作视图一、SELECT语句的基本使用1. 查询Employees表中所有数据SELECT * FROM Employees;2. 查询Emp

8、loyees表中指定字段数据SELECT EmployeeID,Name,DepartmentID FROM Employees;3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行SELECT Distinct DepartmentID,Sex FROM Employees;4. 使用WHERE子句查询表中指定的数据查询编号为000001的雇员的地址和电话Select Address,PhoneNumber FROM Employees WHERE EmployeeID=000001;查询月收入高于2000元的员工号码SELECT EmployeeID FROM

9、 Salary WHERE InCome2000;查询1970年以后出生的员工的姓名和住址SELECT Name,Address FROM Employees WHERE YEAR(Birthday)1970;SELECT Name,Address FROM Employees WHERE Birthday1970;5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话SELECT Address AS 地址,PhoneNumber AS 电话 FROM Employees;查询Employees表中男雇员的姓名和出生日期,并将列标题显示为

10、姓名和出生日期SELECT Name AS 姓名,Birthday AS 出生日期 FROM Employees WHERE Sex=1;6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”SELECT Name AS 姓名, CASE WHEN Sex=1 THEN 男 WHEN Sex=0 THEN 女 END AS 性别 FROM Employees;查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,20003000地显示为中等收入,3000元以上显示为高收入。SELECT a.Name AS

11、 姓名,a.Address as 住址, CASE WHEN b.InCome3000 THEN 高收入 END AS 收入水平FROM Employees a,Salary bWHERE a.EmployeeID=b.EmployeeID;7. 使用SELECT语句进行简单计算在Salary表中,计算每个雇员的实际收入,并显示雇员编号和实际收入SELECT EmployeeID AS 雇员编号,InCome-OutCome AS 实际收入 FROM Salary;8. 使用聚合函数获得员工总数SELECT COUNT(*) FROM Employees;计算Salary表中员工月收入的平均数

12、SELECT AVG(InCome) AS 平均收入 FROM Salary;获得Employees表中最大的员工号码SELECT MAX(EmployeeID) AS 雇员编号 FROM Employees;计算Salary表中所有员工的总支出SELECT SUM(OutCome) AS 总支出 FROM Salary;查询财务部雇员的最高和最低实际收入SELECT MAX(InCome-OutCome) AS 最高收入,MIN(InCome-OutCome) AS 最低收入 FROM Salary;9. 模糊查询找出所有姓王的雇员的部门号SELECT DepartmentID AS 部门号

13、 FROM Employees WHERE Name like 王%;找出所有地址中含有“中山”的雇员的编号及部门号SELECT EmployeeID AS 雇员编号,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. BetweenA

14、nd和Or的使用找出收入在20003000元之间的雇员编号SELECT EmployeeID,InCome FROM Salary WHERE InCome 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

15、 SalaryNewFROM SalaryWHERE InCome1500;由表Employees创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工SELECT EmployeeID,NameINTO EmployeesNewFROM EmployeesWHERE Sex=1;二、子查询的使用1. 查找在财务部工作的雇员情况-分析:雇员表和部门表通过DepartmentID进行关联-1)在Departments表中查找财务部的编号-2)在Employees表中查找部门的雇员情况SELECT * FROM Employees WHERE DepartmentID =(SELE

16、CT DepartmentID FROM Departments WHERE DepartmentName=财务部);2. 用子查询的方法查找所有收入在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 WHE

17、RE DepartmentName=研发部);4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名-1)查找财务部雇员的收入-2)查找研发部雇员的编号,条件是收入比所有财务部雇员收入都高-3)通过编号找到雇员姓名SELECT Name FROM Employees WHERE EmployeeID IN (SELECT EmployeeID FROM Salary WHERE EmployeeID IN(SELECT EmployeeID FROM Employees WHERE DepartmentID =(SELECT DepartmentID FROM Department

18、s WHERE DepartmentName=研发部) AND InCome ALL(SELECT InCome FROM Salary WHERE EmployeeID IN(SELECT EmployeeID FROM Employees WHERE DepartmentID =(SELECT DepartmentID FROM Departments WHERE DepartmentName=财务部);5. 查找比所有财务部的雇员收入都高的雇员的姓名-分析:1)查找所有财务部的雇员收入-2)查找其他雇员编号,条件是收入比所有财务部的雇员收入都高-3)通过编号找到姓名SELECT Name

19、 FROM Employees WHERE EmployeeID IN(SELECT EmployeeID FROM Salary WHERE InComeALL(SELECT InCome FROM Salary Where EmployeeID IN (SELECT EmployeeID FROM Employees Where DepartmentID =(SELECT DepartmentID FROM Departments WHERE DepartmentName=财务部);6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名-分析:年龄都大等价于生日都小-1)找到所有

20、研发部雇员的生日-2)找到其他部门雇员的姓名,条件是生日比研发部的所有雇员的生日都小SELECT Name FROM Employees WHERE Birthday 2000 AND c.DepartmentName=财务部; 7. 查询研发部在1976年以前出生的雇员姓名及其薪水详请SELECT a.*,b.InCome FROM Employees aINNER JOIN Salary bON a.EmployeeID=b.EmployeeIDINNER JOIN Departments cON a.DepartmentID=c.DepartmentIDWHERE c.Departmen

21、tName=研发部 AND a.Birthday1976四、聚合函数的使用1. 求财务部雇员的平均收入SELECT AVG(a.InCome) FROM Salary aINNER JOIN Employees bON a.EmployeeID=b.EmployeeIDINNER JOIN Departments cON c.DepartmentID=b.DepartmentIDWHERE c.DepartmentName=财务部;2. 查询财务部雇员的最高和最低收入SELECT MIN(a.InCome),MAX(a.InCome) FROM Salary aINNER JOIN Emplo

22、yees bON a.EmployeeID=b.EmployeeIDINNER JOIN Departments cON c.DepartmentID=b.DepartmentIDWHERE c.DepartmentName=财务部;3. 求财务部雇员的平均实际收入SELECT AVG(a.InCome-a.OutCome) FROM Salary aINNER JOIN Employees bON a.EmployeeID=b.EmployeeIDINNER JOIN Departments cON c.DepartmentID=b.DepartmentIDWHERE c.Departmen

23、tName=财务部;4. 查询财务部雇员的最高和最低实际收入SELECT MIN(a.InCome-a.OutCome),MAX(a.InCome-a.OutCome) FROM Salary aINNER JOIN Employees bON a.EmployeeID=b.EmployeeIDINNER JOIN Departments cON c.DepartmentID=b.DepartmentIDWHERE c.DepartmentName=财务部;5. 求财务部雇员的总人数SELECT COUNT(a.EmployeeID) FROM Employees aINNER JOIN De

24、partments bON a.DepartmentID=b.DepartmentIDWHERE b.DepartmentName=财务部;6. 统计财务部收入在2500元以上的雇员人数SELECT COUNT(a.EmployeeID) FROM Employees aINNER JOIN Departments bON a.DepartmentID=b.DepartmentIDINNER JOIN Salary cON c.EmployeeID=A.EmployeeIDWHERE c.InCome2500 AND b.DepartmentName=财务部;五、GROUP BY、ORDER

25、BY子句的使用1. 查找Employees表中男性和女性的人数SELECT Sex,COUNT(Sex) FROM Employees GROUP BY Sex;2. 按部门列出在该部门工作的员工的人数-使用内连接的方法SELECT b.DepartmentName,COUNT(a.EmployeeID) FROM Employees aINNER JOIN Departments bON a.DepartmentID=b.DepartmentIDGROUP BY b.DepartmentName;-使用多表查询方法,GROUP BY后面的字段,必须出现在SELECT语句要查询的字段中。SEL

26、ECT b.DepartmentName,COUNT(a.EmployeeID) FROM Employees a,Departments bWHERE a.DepartmentID=b.DepartmentIDGROUP BY b.DepartmentName;3. 按员工的学历分组,排列出本科、大专、硕士的人数SELECT a.Education,COUNT(a.EmployeeID) FROM Employees aGROUP BY a.Education;4. 查找员工数超过2的部门名称和雇员数量SELECT b.DepartmentName,COUNT(a.EmployeeID) FROM Employees a,Departments bWHERE a.DepartmentID=b.DepartmentIDGROUP BY b.DepartmentNameHAVING COUNT(a.EmployeeID)2;5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人SELECT a.WorkYear,COUNT(a.EmployeeID) FROM Employees a GROUP BY

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1