数据库的查询和视图实验报告.docx
- 文档编号:26476340
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:24
- 大小:937.37KB
数据库的查询和视图实验报告.docx
《数据库的查询和视图实验报告.docx》由会员分享,可在线阅读,更多相关《数据库的查询和视图实验报告.docx(24页珍藏版)》请在冰豆网上搜索。
数据库的查询和视图实验报告
数据库的查询和视图实验(实习)报告
实验名称数据库的查询和视图实验日期得分指导教师
系计算机系年级专业班次姓名学号
一.实验目的
掌握SELECT语句的基本语法;
掌握子查询的表示;
掌握连接查询的表示;
掌握SELECT语句的GROUPBY子句的作用和使用方法;
掌握SELECT语句的ORDERBY子句的作用和使用方法;
熟悉视图的概念和作用;
掌握视图的创建方法;
掌握如何查询和修改视图。
二.实验内容
(1)了解SELECT语句的基本语法格式;
(2)了解SELECT语句的执行方法;
(3)了解子查询的表示方法;
(4)了解连接查询的表示;
(5)了解SELECT语句的GROUPBY子句的作用与使用方法;
(6)了解SELECT语句的ORDERBY子句的作用;
(7)了解视图概念;
(8)了解视图的创建方法;
(9了解并掌握对视图的操作。
三.实验步骤
(1)SELECT语句的基本使用。
1、对于实验2给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在“查询分析器”窗口中输入如下语句并执行
useYGGL
go
select*
fromEmployees
2用select语句查询employees表中每个雇员的地址和电话。
新建一个查询,在“查询分析器”窗口中输入如下语句并执行:
useYGGL
go
selectAddress,PhoneNumber
fromEmployees
3查询employeeID为000001的雇员的地址和电话。
useYGGL
go
selectAddress,PhoneNumber
fromEmployees
whereEmployeeID='000001'
go
4查询employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
useYGGL
go
selectAddressAS地址,PhoneNumberAS电话
fromEmployees
whereSex=0
go
5查询employees表中的员工姓名和性别,要求Sex的值为1时显示为‘“男”,为0时显示为“女”。
selectNameAS姓名,
CASE
whenSex=1then'男'
whenSex=0then'女'
endAS性别
fromEmployees
6计算每个雇员的实际收入。
useYGGL
go
selectEmployeeID,实际收入=InCome-OutCome
fromSalary
7获得员工总数。
selectCOUNT(*)
fromEmployees
8找出所有姓王的雇员的部门号。
useYGGL
go
selectDepartmentID
fromEmployees
whereNameLIKE'王%'
9找出所有收入在2000~3000之间的员工号码。
selectEmployeeID
fromSalary
whereInComebetween2000and3000
10使用INTO子句,由表Salary创建“收入在1500以上的员工”表,包括编号和收入。
useYGGL
go
selectEmployeeIDas编号,InComeas收入
INTO收入在以上的员工
fromSalary
whereInCome>1500
(2)子查询的使用
1查找在财务部工作的雇员的情况。
useYGGL
go
select*
FROMEmployees
whereDepartmentID=
(
selectDepartmentID
fromDepartments
whereDepartmentName='财务部'
)
2查找财务部年龄不低于研发部雇员年龄的的雇员的姓名。
useYGGL
go
selectName
fromEmployees
whereDepartmentIDIN
(
selectDepartmentID
fromDepartments
whereDepartmentName='财务部'
)
AND
Birthday!
>ALL
(
selectBirthday
fromEmployees
whereDepartmentIDIN
(
selectDepartmentID
fromDepartments
whereDepartmentName='研发部'
)
)
3查找比所有财务部的雇员收入都要高的雇员的姓名。
useYGGL
go
selectName
fromEmployees
whereEmployeeIDIN
(
selectEmployeeID
fromSalary
whereInCome>ALL
(
SELECTInCome
fromSalary
whereEmployeeIDIN
(
selectEmployeeID
fromEmployees
whereDepartmentID=
(
selectDepartmentID
fromDepartments
whereDepartmentName='财务部'
)
)
)
)
(3)连接查询的使用
1查询每个雇员的情况及其薪水的情况
useYGGL
go
selectEmployees.*,Salary.*
fromEmployees,Salary
whereEmployees.EmployeeID=Salary.EmployeeID
2使用内连接的方法查询名字为“王林”的员工所在的部门。
selectDepartmentName
fromDepartmentsJOINEmployees
ONDepartments.DepartmentID=Employees.DepartmentID
whereEmployees.Name='王林'
3查找财务部收入在2000以上的雇员姓名及其薪水详情
新建一个查询,在“查询分析器”窗口中输入如下的语句并执行:
USEYGGL
go
selectName,InCome,OutCome
fromEmployees,Salary,Departments
whereEmployees.EmployeeID=Salary.EmployeeID
ANDEmployees.DepartmentID=Departments.DepartmentID
ANDDepartmentName='财务部'
ANDInCome>2000
(4)聚合函数的使用
1求财务部雇员的平均收入
新建一个查询,在“查询分析器”窗口中输入如下的语句并执行:
USEYGGL
go
selectAVG(InCome)AS'财务部平均收入'
FROMSalary
WHEREEmployeeIDin
(
selectEmployeeID
fromEmployees
whereDepartmentID=
(
selectDepartmentID
fromDepartments
whereDepartmentName='财务部'
)
)
2求财务部雇员的平均实际收入
新建一个查询,在“查询分析器”窗口中输入如下的语句并执行:
USEYGGL
go
selectAVG(InCome-OutCome)AS'财务部平均收入'
FROMSalary
WHEREEmployeeIDin
(
selectEmployeeID
fromEmployees
whereDepartmentID=
(
selectDepartmentID
fromDepartments
whereDepartmentName='财务部'
)
)
3求财务部雇员总人数。
新建一个查询,在“查询分析器”窗口中输入如下的语句并执行:
USEYGGL
go
selectCOUNT(EmployeeID)
FROMEmployees
WHEREDepartmentID=
(
SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'
)
(5)GROUPBY\ORDERBY子句的使用
1查找Employees表中的男性和女性的人数。
selectSex,COUNT(Sex)
fromEmployees
GROUPBYSex;
2查找员工数超过2人的部门名称和员工数量。
selectEmployees.DepartmentID,COUNT(*)AS人数
fromEmployees,Departments
whereEmployees.DepartmentID=Departments.DepartmentID
GROUPBYEmployees.DepartmentID
HAVINGCOUNT(*)>2
3将各雇员的情况按收入由低到高排列
新建一个查询,在“查询分析器”窗口中输入如下的语句并执行:
useYGGL
go
selectEmployees.*,Salary.*
fromEmployees,Salary
whereEmployees.EmployeeID=Salary.EmployeeID
ORDERBYInCome
(6)创建视图
1创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列。
createVIEWDS_VIEW
ASSELECT*FROMDepartments
2创建YGGL数据库上的视图Employees_view,视图包含员工号码、姓名和实际收入三列。
使用如下SQL语句:
createVIEWEmployees_view(EmployeeID,Name,RealIncome)
AS
SELECTEmployees.EmployeeID,Name,InCome-OutCome
fromEmployees,Salary
whereEmployees.EmployeeID=Salary.EmployeeID
(7)查询视图
1从视图DS_VIEW中查询出部门号为3的部门名称
selectDepartmentName
fromDS_VIEW
WHEREDepartmentID='3'
2从视图Employees_view查询出姓名为“王林”的员工的实际收入。
selectRealIncome
fromEmployees_view
WHEREName='王林'
(8)更新视图。
1向视图DS_VIEW中插入一行数据:
“6,广告部,广告业务”。
INSERTINTODS_VIEWVALUES('6','广告部','广告业务')
2修改视图DS_VIEW,将部门号为5的部门名称修改为“生产车间”。
UPDATEDS_VIEW
SETDepartmentName='生产车间'
WHEREDepartmentID='5'
3修改视图Employees_view中员工号为“000001”的员工的姓名为“王浩”。
UPDATEEmployees_view
SETName='王浩'
WHEREEmployeeID='000001'
4删除视图DS_VIEW中部门号为“1”的一行数据
DELETEFROMDS_VIEW
WHEREDepartmentID='1'
(9)删除视图
删除视图DS_VIEW
DROPVIEWDS_VIEW
(10)在界面工具中操作视图
1创建视图:
启动“SQLServerManagementStudio”,在“对象资源管理器”中展开“数据库”,“YGGL”
选择其中的“视图”项,右击鼠标,在弹出的快捷菜单上选择“新建视图”菜单项。
在随后出现的添加表窗口中,添加所需要的关联的基本表。
在视图窗口的关系图窗口显示了基表的全部信息。
根据需要在窗口中选择创建视图需要的字段。
完成后单击“保存”按钮保存。
2查询视图:
新建一个查询,输入T-SQL查询命令即可和查询表一样查询视图。
3删除视图:
展开YGGL数据库,“视图”选择要删除的视图,右击选择“删除”选项,确认即可。
实验总结。
通过本次实验,我学会了SELECE语句的基本语法,子查询的表示,连接查询的表示,GROUP BY、ORDER BY语句的作用和使用方法,熟悉了视图的概念和作用,学会了视图的创建、查询和修改,通过实验我也体会到上机操作一定要谨慎认真。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 查询 视图 实验 报告