实验三数据库的查询和视图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据库的查询和视图
T4.1 数据库的查询
1、目的和要求
(1)掌握SELECT语句的基本语法。
(2)掌握子查询的表示。
(3)掌握连接查询的表示。
(4)掌握SELECT语句的GROUP BY子句的作用和使用方法。(5)掌握SELECT语句的ORDER BY子句的作用和使用方法。
2、实验准备
(1)了解SELECT语句的基本语法格式。
(2)了解SELECT语句的执行方法。
(3)了解子查询的表示方法。
(4)了解连接查询的表示。
(5)了解SELECT语句的GROUP BY子句的作用和使用方法。(6)了解 SELECT语句的ORDER BY子句的作用。
3、实验内容
(1)SELECT语句的基本使用。
①对于实验二给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在“查询分析器”窗口中输入如下语句并执行。
单击右键空白处,选择执行,在下方会出现所有结果。
【思考与练习】
用SELECT语句查询Departments表和Salary表中所有信息。
新建一个查询,在“查询分析器”窗口中输入如下语句并执行。
单击右键空白处,选择执行,在下方会出现所有结果。
在“消息”中会发现总共有60行受影响。
② 用SECECT语句查询Employees表中每个雇员的地址和电话号码。
新建一个查询,在“查询分析器”窗口中输入如下代码并执行。
单击右键空白处,选择执行,在下方会出现所有结果。
在“消息”中会发现有12行记录受影响
【思考与练习】
A、用SELECT语句查询Departments表和Salary表的一列或若干行。
利用SELECT语句查询Departments表和Salary表中 EmployeeID为000001的记录,在“查询分析器”中输入以下代码。
执行后在下方会出现所有EmployeeID=000001的记录
B、查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。
对表只选择某些行时,可能会出现重复行。此时就需要使用DISTINCT关键字消除结果中的重复行。此时使用DISTINCT消除在Employees中查询到的部门号和性别的重复行,具体代码如下。
上面代码分别是使用了DISTINCT和没有使用DISTINCT关键字,下面就是两种的结果的对比。
可以从上面的执行结果中看出使用了DISTINCT关键字,结果集中的重复行就被消除了。
③查询EmployeeID为000001的雇员的地址和电话。
鼠标右键单击在弹出的菜单窗口中选择“执行”,结果中只会出现一行记录,EmployeeID为000001的雇员的地址和电话。
【思考与练习】
A、查询月收入高于2000元的员工号码。
只需要查询员工号码,条件为月收入高于2000元员工,那么至于要Salary表就行。用T-SQL命令在表Salary表中查询月收入高于2000元的员工代码如下。
在结果栏中显示(9 行受影响),说明月收入高于2000的员工共有9人,如上截图所示,将所有月收入高于2000的员工的员工号码输出。
B、查询1970年以后出生的员工的姓名和地址。
通过分析员工信息,跟员工年龄、姓名、地址相关的只有表Employees表,所以只需要在一张表中查询即可,具体T-SQL查询命令如下。
在结果栏中消息显示(7 行受影响),说明1970年以后出生有7人,如上截图所示,将部分1970年以后出生员工姓名、地址输出显示。
C、查询所有财务部的员工的号码和姓名。
通过分析的,需要知道财务部与员工的号码和姓名,财务部只存在于Departments表中,员工姓名和号码只存在于Employees表中。因此需要在表Departments表和Employees表中进行查询。利用T-SQL命令查询代码如下。
在结果栏中显示3行受影响,从上面截图中可以看出所有财务部员工有3人,并且查询显示其姓名、电话号码。
④ 查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
从上面结果的截图发现Address变为地址,PhoneNumber变为电话。
【思考与练习】
查询Employees表中男员工的姓名和出生日期,要求各列标题用中文表示。
通过分析此查询属于单表查询,只需要用到Employees表,使用AS子句就能够使结果集中各列标题用中文显示。利用T-SQL命令查询代码如下。
从上面结果的截图发现各列标题都是中文。从消息中显示(9 行受影响)说明,员工中男性有9人,并且全部男性的姓名和出生日期都已经查询显示出。
⑤ 查询Employees表中员工的姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”。
【思考与练习】
查询Employees员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000元显示为中等收入,3000元以上显示高收入。
经过分析需要查询员工的姓名、住址和收入水平,需要在Employees表和Salary表中进行查询,并且将Salary表中员工的InCome进行分类需要用到AS子句。利用T-SQL命令进行多表查询语句如下。
执行上面截图中代码,在结果栏中出现员工的姓名,住址和收入水平。消息中显示12行受影响,Employees表中所有员工信息都已经查询输出。
⑥计算每个雇员的实际收入。
经过分析需要员工的收入以及员工号码和员工姓名,就需要在Employees表和Salary表中进行查询。利用T-SQL命令查询如下。
结果栏中就会显示EmployeeID,Name,实际收入这三项。