《SQL SERVER 数据库应用》实验指导书-2015版 下载本文

(5)使用TRANCATE TABLE语句删除表中所有行。

启动查询分析器一>在“查询”窗口中输入以下 T—SQL语句: USE YGGL

TRANCATE TABLE Salary GO

单击快捷工具栏的执行图标,执行上述语句,将删除Salary表中的所有行。

注意:实验时一般不轻易做这个操作,因为后面实验还要用到这些数据。如要试验该命令

的效果,可建一个临时表,输入少量数据后进行。

实验二 数据库的查询

一、实验目的

1.掌握SELECT语句的基本语法; 2.掌握子查询的表示; 3.掌握连接查询的表示; 4.掌握数据汇总的方法;

5.掌握SELECT语句的GROUP BY子句的作用和使用方法; 6.掌握SELECT语句的ORDER BY子句的作用和使用方法。

二、实验内容

1.SELECT语句的基本使用

(1)对于实验1给出的数据库表结构,查询每个雇员的所有数据。 在查询分析器的窗口输入如下的语句并执行: USE YGGL SEIECT *

FROM Employees GO

【思考与练习】

用SELECT语句查询Departments和Salary表的所有记录。 (2)查询每个雇员的地址和电话。

在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT Address,PhoneNumber FROM Employees GO

【思考与练习】

用SELECT语句查询Departments和Salary表的一列或若干列。 (3)查询EmployeeID为000001的雇员的地址和电话。 在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT Address,PhoneNumber 7 FROM Employees

WHERE EmployeelD=’000001’ GO

【思考与练习】

9

用SELECT语句查询Departments和Salary表中满足指定条件的1列或若干列。

(4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。

在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT Address AS地址.PhoneNumber AS电话 FROM Employees WHERE sex=0

Go

注意:使用AS子句可指定目标列的标题。 (1) 计算每个雇员的实际收入。

在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT EmployeelD,实际收入=InCome—OutCome

FROM Salary G0

(2) 找出所有姓王的雇员的部门号。

在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT DepartmentID FROM Employees

WHERE name LIKE’王%’ Go

【思考与练习】找出所有其地址中含有‘‘中山”的雇员的号码及部门号。 (3) 找出所有收入在2000~3000元之间的雇员号码。 在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT EmployeelD

FROM Salary

WHERE InCome BETWEEN 2000 AND 3000 GO

【思考与练习】

找出所有在部门‘1’或‘2’工作的雇员的号码。

注意:在SELECT语句中LIKE、BETWEEN?AND,,IN,NOT及CONTAIN谓词的作用。 3. 子查询的使用

(1)查找在财务部工作的雇员的情况。

在查询分析器的窗口输入如下的语句并执行:

USE YGGL SELECT *

FROM Employees .

WHERE DepartmentlD= 。 (SELECT DepartmentlD FROM Departments

WHERE DepartmentName=’财务部’)

10

GO

【思考与练习】

用子查询的方法查找所有收入在2500元以下的雇员的情况。 (2)查找财务部年龄不低于研发部雇员年龄的雇员的姓名。 在查询分析器的窗口输入如下的语句并执行: USE YGGL SELECT Name

FROM Employees

WHERE DepartmentID IN (SELECT DepartmentID FROM Departments

WHERE DepartmentName’财务部’) AND

Birthday!>ALL(SELECT Birthday FROM Employees

WHERE DepartmentlD IN (SELECT DepartmentlD FROM Departments

WHERE DepartmentName=’研发部’))

GO 【思考与练习】

用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名。 (3)查找比所有财务部的雇员收入都高的雇员的姓名。 在查询分析器的窗口输入如下的语句并执行: USE YGGL SELECT Name FROM Employees

WHERE EmployeeID IN (SELECT EmployeelD FROM Salary

WHERE InCome> . ALL ( SELECT InCome FROM Salary

WHERE EmployeelD IN (SELECT EmployeelD FROM Employees

WHERE DepartmentlD= (SELECT DepartmentlD FROM Departments

WHERE DepartmentName=’财务部’)))) GO

【思考与练习】

用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名。 3.连接查询的使用

11

(1) 查询每个雇员的情况以及其薪水的情况。 在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT Emploees.*,Salary.* FROM Employees,Salary

WHERE Elmployees.EmployeelD=Salary.EmployeelD GO

【思考与练习】查询每个雇员的情况以及其工作部门的情况。 (2) 查找财务部收入在2200元以上的雇员姓名及其薪水详情。 在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT Name,InCome,OutCome

FROM Employees,Salary,Departments

WHERE Employees.EmployeelD=Salary.EmployeelD AND Employees.DepartmentlD

=Departments.DepartmentlD AND DepartmentName=’财务部’AND InCome>2000 GO

【思考与练习】查询研发部在1966年以前出生的雇员姓名及其薪水详情。 4. 数据汇总

(1)求财务部雇员的平均收入。

在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT AVG(InCome)AS ’财务部平均收入’ FROM Salary

WHERE EmployeelD IN (SELECT EmployeelD FROM Employees

WHERE DepartmentlD= (SELECT DepartmentlD FROM Departments

WHERE DepartmentName=’财务部’)) GO

【思考与练习】查询财务部雇员的最高和最低收入。 (3) 求财务部雇员的平均实际收入。

在查询分析器的窗口输入如下的语句并执行: USE YGGL

SELECT AVG(1nCome-OutCome)AS‘财务部平均实际收入’ FROM Salary

WHERE EmployeelD IN (SELECT EmployeeID FROM Employees

WHERE DepartanentlD = (SELECT DepartmentlD FROM Departments

WHERE DepamnentName=’财务部’))

12