SQL Server实用教程(第三版)实验4 数据库的查询和视图
- 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语句的GROUPBY子句的作用和使用方法;
(6)了解SELECT语句的ORDER BY子句的作用;
3实验内容
SELECT语句的基本使用。
①对于实验2给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在查询分析器中输入如下语句并执行:
USEYGGL
GO
SELECT*
FROMEmployees
【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。
用SELECT语句查询Employees表中每个雇员的地址和电话。
新建一个查询,在查询分析器中输入如下语句并执行:
Use YGGL
GO
SELECT Address PhoneNumber
FROM Employees
【思考与练习】
a.用SELECT语句查询Deparments和Salary表的一列或若干列。
b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。
c.查询EmployeeID为000001的雇员的地址和电话。
Use YGGL
GO
SELECT Address PhoneNumber
FROM Employees
WHERE EmployeeID=’000001’
【思考与练习】
a.查询月收入高于2000元的员工号码。
b.查询1970年以后出生的员工的姓名和住址。
c.查询所有财务部的员工的号码和姓名。
查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
USE YGGL
GO
SELECT Address AS 地址,PhoneNumber AS 电话
FROM Employees
WHERE Sex=0
【思考与练习】查询Employees表中男员工的姓名和出生日期,要求将各列标题用中文标示。
⑤查询Employees表中员工的姓名和性别,要求SEX值为时显示为“男”,为0时显示为“女”。
SELECT NameAS姓名,
CASE
WHENSex=1 THEN 男
WHENSex=1 THEN 女
END AS性别
FROM Employees
【思考与练习】查询Employees员工的姓名、住址和收入水平,2000元以下显示低收入,2000-3000元显示为中等收入,3000元以上显示为高收入。
⑥计算每个雇员的实际收入
USE YGGL
GO
SELECT EployeeID,实际收入=income-OutCome
FROMSalary
【思考与练习】使用SELECT语句进行简单的计算。
⑦获得员工总数。
SELECTCOUNT(*)
FROM Salary
【思考与练习】
a.计算salary表中员工月收入的平均数。
b.获得Employees表中最大员工号码。
c.计算Salary表中所有员工的总支出。
d.查询财务部雇员的最高和最低实际收入。
⑧找出所有姓王的雇员的部门号。
USE YGGL
GO
SELECTDepartmentID
FROMEmployees
WHERENameLIKE王%
【思考与练习】
a.找出所有其地址中含有“中山”的雇员的号码及部门.
b.查找员工号码倒数第二个数字为0的员工的姓名、地址和学历。
⑨找出所有收入在2000-3000元之间的员工号码。
SELECT EmployeeID
from Salary
where InCome between 2000 and 3000
【思考与练习】找出所有在部门“1”或“2”工作的雇员的号码。
注意:了解在SELECT语句中LIKE、BETWEEN…AND、IN、NOT以及CONTAIN谓词的作用。
⑩使用into子句,由表Salary创建“收入在1500元以上的员工”表,包括编号和收入
USE YGGL
GO
select EmployeeID as 编号,Income as 收入
into 收入在1500元以上的员工
from Salary
where InCome>1500
【思考与练习】使用Into子句,由表Employees创建“男员工”表,包括编号和姓名。
(1)子查询的使用。
①查找在财务部工作的雇员的情况
USE YGGL
GO
select *
from Employees
where DepartmentID=
(
select DepartmentID from Departments
where DepartmentName='财务部'
)
【思考与练习】用子查询的方法查找所有收入在2500元以下的雇员的情况
②查找财务部年龄不低于研发部雇员年龄的雇员的姓名。
USE YGGL
GO
select Name