数据库上机内容及答案.docx
- 文档编号:7102685
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:32
- 大小:3.12MB
数据库上机内容及答案.docx
《数据库上机内容及答案.docx》由会员分享,可在线阅读,更多相关《数据库上机内容及答案.docx(32页珍藏版)》请在冰豆网上搜索。
数据库上机内容及答案
使用T-SQL语句创建数据库YGGL
启动查询分析器→在“查询”窗口中输入如下T-SQL语句:
CREATEDATABASEYGGL
ON
(NAME='YGGL_Data',
FILENAME='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\YGGL.mdf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5%)
LOGON
(NAME='YGGL_Log',
FILENAME='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\YGGL_Log.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
GO
单击快捷工具栏的执行图标执行上述语句,并在企业管理器中查看执行结果。
4.在企业管理器中分别创建表Employees、Departments和Salary
在企业管理器中选择数据库YGGL→在YGGL上单击鼠标右键→新建→表→输入Employees表各字段信息→单击保存图标→输入表名Employees,即创建了表Employees。
按同样的操作过程创建表Departments和Salary。
5.在企业管理器中删除创建的Employees、Departments和Salary表
在企业管理器中选择数据库YGGL的表Employees→在Employees上单击鼠标右键-→删除,即删除了表Employees。
按同样的操作过程删除表Departments和Salary。
6.使用T-SOL语句创建表Employees、Departments和Salary
启动查询分析器→在“查询”窗口中输入以下T-SQL语句:
USEYGGL
CREATETABLEEmployees
(EmployeeIDchar(6)NOTNULL,
Namechar(10)NOTNULL,
BirthdaydatetimeNOTNULL,
SexbitNOTNULL,
Addresschar(20)NOTNULL,
Zipchar(6)NULL,
PhoneNumberchar(12)NULL,
EmailAddresschar(20)NULL,
DepartmentIDchar(3)NOTNULL)
GO
单击快捷工具栏的执行图标,执行上述语句,即可创建表Employees。
按同样的操作过程创建表Departments和Salary,并在企业管理器中查看结果。
创建表Departments
USEYGGL
CREATETABLEDepartments
(DepartmentIDchar(3)NOTNULL,
DepartmentNamechar(20)NOTNULL,
NotetextNULL)
GO
创建表Salary
USEYGGL
CREATETABLESalary
(EmployeeIDchar(6)NOTNULL,
InComefloat(8)NOTNULL,
OutComefloat(8)NOTNULL)
GO
USEYGGL
INSERTINTOEmployees
VALUES('011112','罗林','1973-5-3',1,'解放路号',210002,4055663,NULL,5)
GO
INSERTINTODepartments
VALUES('2','人力资源部',NULL)
GO
INSERTINTOSalary
VALUES('011112',1200.09,50)
GO
USEYGGL
UPDATESalary
SETInCome=2890
WHEREEmployeeID='011112'
GO
UPDATESalary
SETInCome=InCome+100
GO
USEYGGL
SELECT*
FROMEmployees
GO
思考与练习:
用SELECT语句查询Departments和Salary表的所有记录。
USEYGGL
SELECT*
FROMDepartments
GO
USEYGGL
SELECT*
FROMSalary
GO
(2)查询每个雇员的地址和电话。
在查询分析器的编辑窗口输入如下语句并执行:
USEYGGL
SELECTAddress,PhoneNumber
FROMEmployees
GO
思考与练习:
用SELECT语句查询Departments和Salary表的一列或若干列。
USEYGGL
SELECTDepartmentName
FROMDepartments
GO
USEYGGL
SELECTInCome
FROMSalary
GO
(3)查询EmployeeID为000001的雇员的地址和电话。
在查询分析器的编辑窗口输入如
下语句并执行:
USEYGGL
SELECTAddress,PhoneNumber
FROMEmployees
WHEREEmployeeID='011112'
GO
思考与练习:
用SELECT语句查询Departments和Salary表中满足指定条件的一列或若干列。
USEYGGL
SELECTDepartmentName
FROMDepartments
WHEREDepartmentID='1'
GO
USEYGGL
SELECTInCome,OutCome
FROMSalary
WHEREEmployeeID='000001'
GO
(4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
在查询分析器的编辑窗口输入如下语句并执行:
USEYGGL
SELECTAddressAS地址,PhoneNumberAS电话
FROMEmployees
WHEREsex=0
GO
(5)计算每个雇员的实际收入。
在查询分析器的编辑窗口输入如下语句并执行:
USEYGGL
SELECTEmployeeID,实际收入=InCome-OutCome
FROMSalary
GO
(6)找出所有姓王的雇员的部门号。
在查询分析器的编辑窗口输入如下语句并执行:
USEYGGL
SELECTDepartmentID
FROMEmployees
WHEREnameLIKE'陈%'
GO
思考与练习:
找出所有地址中含有“中山”的雇员的号码及部门号。
USEYGGL
SELECTPhoneNumber,DepartmentID
FROMEmployees
WHEREaddressLIKE'中山%'
GO
USEYGGL
SELECTEmployeeID
FROMSalary
WHEREInComeBETWEEN2000AND3000
GO
思考与练习:
找出所有在财务部和人力资源部工作的雇员的编号。
USEYGGL
SELECTEmployeeID
FROMEmployees
WHEREDepartmentID='1'ORDepartmentID='2'
GO
(1)查找在财务部工作的雇员的情况。
在查询分析器的编辑窗口输入如下语句并执行:
USEYGGL
SELECT*
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartment
WHEREDepartmentName=‘财务部’)
GO
思考与练习:
用子查询的方法查找所有收入在2500元以下的雇员的情况。
USEYGGL
SELECT*
FROMEmployees
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMSalary
WHEREIncome<'2500')
GO
USEYGGL
SELECTName
FROMEmployees
WHEREBirthday>ALL(SELECTBirthday
FROMEmployees
WHEREDepartmentIDIN
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='研发部'))
AND
DepartmentIDIN
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部')
GO
思考与练习:
用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名。
USEYGGL
SELECTName
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='研发部'
)
(SELECTIncome
FROMSalary
WHEREInCome>ALL
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'))
GO
(3)查找比所有财务部的雇员收入都高的雇员的姓名。
在查询分析器的编辑窗口输入如下的语句并执行:
USEYGGL
SELECTName
FROMEmployees
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMSalary
WHEREInCome>
ALL(SELECTInCome
FROMSalary
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName=‘财务部’))))
GO
思考与练习:
用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名。
USEYGGL
SELECTName
FROMEmployees
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMSalary
WHEREBirthday>
ALL(SELECTBirthday
FROMEmployees
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='研发部'))))
GO
3.连接查询的使用
(1)查询每个雇员的情况及其薪水的情况。
在查询分析器的编辑窗口输入如下的语句并执行:
USEYGGL
SELECTEmployees.*,Salary.*
FROMEmployees,Salary
WHEREEmployees.EmployeeID=Salary.EmployeeID
GO
思考与练习:
查询每个雇员的情况及其工作部门的情况。
USEYGGL
SELECTEmployees.*,Departments.*
FROMEmployees,Departments
WHEREEmployees.DepartmentID=Departments.DepartmentID
GO
(2)查找财务部收入在2200元以上的雇员姓名及其薪水详情。
在查询分析器的编辑窗口输入如下语句并执行:
USEYGGL
SELECTName,InCome,OutCome
FROMEmployees,Salary,Departments
WHEREEmployees.EmployeeID=Salary.EmployeeIDANDEmployees.DepartmentID
=Departments.DepartmentIDANDDepartmentName=‘财务部’ANDInCome>2200
GO
思考与练习:
查询研发部在1966年以前出生的雇员姓名及其薪水详情。
USEYGGL
SELECTName,InCome,OutCome
FROMEmployees,Salary,Departments
WHEREEmployees.EmployeeID=Salary.EmployeeIDANDEmployees.DepartmentID
=Departments.DepartmentIDANDDepartmentName='研发部'ANDBirthday>1966
GO
4.数据汇总
(1)求财务部雇员的平均收入。
在查询分析器的编辑窗口输入如下语句并执行:
USEYGGL
SELECTAVG(InCome)AS‘财务部平均收入’
FROMSalary
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName=‘财务部’))
GO
思考与练习;查询财务部雇员的最高和最低收入,
USEYGGL
SELECTMAX(InCome)AS'财务部最高收入',
MIN(InCome)AS'财务部最低收入'
FROMSalary
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'))
GO
(2)求财务部雇员的平均实际收入。
在查询分析器的编辑窗口输入如下的语句并执行:
USEYGGL
SELECTAVG(InCome-OutCome)AS‘财务部平均实际收入’
FROMSalary
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName=‘财务部’))
GO
思考与练习:
查询财务部雇员的最高和最低实际收入。
USEYGGL
SELECTMAX(InCome-OutCome)AS'财务部最高实际收入',
MIN(InCome-OutCome)AS'财务部最低实际收入'
FROMSalary
WHEREEmployeeIDIN
(SELECTEmployeeID
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'))
GO
(3)求财务部雇员的总人数。
在查询分析器的编辑窗口输入如下的语句并执行:
USEYGGL
SELECTCOUNT(EmployeeID)
FROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName=‘财务部’)
G0
思考与练习;统计财务部收入在2500以上雇员的人数。
USEYGGL
SELECTCOUNT(*)AS财务部收入在大于
FROMSalary
WHEREIncome>2500ANDEmployeeIDIN
(SELECTEmployeeIDFROMEmployees
WHEREDepartmentID=
(SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'))
GO
5.GROUPBY、ORDERBY子句的使用
(1)求各部门的雇员数。
在查询分析器的编辑窗口输入如下的语句并执行:
USEYGGL
SELECTCOUNT(EmployeeID)
FROMEmployees
GROUPBYDepatmentID
GO
思考与练习:
统计各部门收入在2000以上雇员的人数。
USEYGGL
SELECTDepartmentName,COUNT(*)AS各部门的雇员数FROMDepartments,
Employees,Salary
WHEREDepartments.DepartmentID=Employees.DepartmentIDAND
Employees.EmployeeID=Salary.EmployeeIDANDincome>2000
GROUPBYDepartmentName
GO
(2)将各雇员的情况按收入由低到高排列。
在查询分析器的编辑窗口输入如下的语句并执行:
USEYGGL
SELECTEmployees.*,Salary.*
FROMEmployees,Salary
WHEREEmployees.EmployeeID=Salary.EmployeeID
ORDERBYInCome
GO
思考与练习:
将各雇员的情况按出生时间先后排列。
USEYGGL
SELECT*FROMEmployees
ORDERBYBirthdayDESC
GO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 上机 内容 答案