数据库的查询和视图.docx
- 文档编号:5473012
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:23
- 大小:458.14KB
数据库的查询和视图.docx
《数据库的查询和视图.docx》由会员分享,可在线阅读,更多相关《数据库的查询和视图.docx(23页珍藏版)》请在冰豆网上搜索。
数据库的查询和视图
学校代码:
10128
学号:
201320905005
《数据库原理及应用》实验报告
(
题目:
数据库的查询和视图
学生姓名:
周亚东
学院:
理学院
系别:
数学系
专业:
信息与计算科学
班级:
信计13-1
任课教师:
侯睿
二〇一六年五月
4.1数据库的查询
1、实验目的
(1).掌握SELECT语句的基本语法;
(2).掌握子查询的表示;
(3).掌握链接查询的表示;
(4).掌握SELECT语句的GROUPBY子句的作用和使用方法;
(5).掌握SELECT语句的ORDERBY子句的作用和使用方法;
2、实验内容
1).基本查询
(1).对于实验2给出的数据库表结构,查询每个雇员的所有数据
(2).用SELECT语句查询Employees表中每个雇员的地址和电话
(3).查询EmployeeID为000001的雇员的地址和电话
(4).查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话
(5).查询Employees表中员工的姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”
(6).计算每个雇员的实际收入
(7).获得员工总数
(8).找出所有姓王的雇员的部门号
(9).找出所有收入在2000-3000元之间的员工号码
(10).使用INTO子句,由表Salary创建“收入在1500元以上的员工”表,包括编号和姓名
2).子查询
(1).查找在财务部工作的雇员的情况
(2).查找财务部年龄不低于研发部雇员年龄的雇员的姓名
(3).查找比所有财务部的雇员收入都高的雇员的姓名
3).连接查询
(1).查询每个雇员的情况及其薪水情况
(2).使用内连接的方法查询名字为“王林”的员工所在的部门
(3).查找财务部收入在2000元以上的雇员明明及其薪水详情
4).使用聚合函数查询
(1).求财务部雇员的平均收入
(2).求财务部雇员的平均实际收入
(3).求财务部雇员的总人数
5).查询结果分组和排序
(1).查找Employees表中男性和女性的人数
(2).查找员工数超过2人的部门名称和员工数量
(3).将各雇员的情况按收入由低到高排列
3、实验程序
1).基本查询
(1).对于实验2给出的数据库表结构,查询每个雇员的所有数据
代码:
USEYGGL
GO
SELECT*
FROMEmployees
(2).用SELECT语句查询Employees表中每个雇员的地址和电话
代码:
SELECTAddress,PhoneNumber
FROMEmployees
(3).查询EmployeeID为000001的雇员的地址和电话
代码:
SELECTAddress,PhoneNumber
FROMEmployees
WHEREEmployeeID=’000001’
GO
(4).查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话
代码:
SELECTAddressAS地址,PhoneNumberAS电话
FROMEmployees
WHERESex=0
(5).查询Employees表中员工的姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”
代码:
SELECTNameAS姓名,
CASE
WHENSex=1THEN'男'
WHENSex=0THEN'女'
ENDAS性别
FROMEmployees
(6).计算每个雇员的实际收入
代码:
SELECTID,实际收入=InCome-Expense
FROMSalary
(7).获得员工总数
代码:
SELECTCOUNT(*)
FROMEmployees
(8).找出所有姓王的雇员的部门号
代码:
SELECTDepartmentID
FROMEmployees
WHERENameLIKE'王%'
(9).找出所有收入在2000-3000元之间的员工号码
代码:
SELECTID
FROMSalary
WHEREInComeBETWEEN2000AND3000
(10).使用INTO子句,由表Salary创建“收入在1500元以上的员工”表,包括编号和姓名
代码:
SELECTIDAS编号,InComeAS收入
INTO收入在1500元以上的员工
FROMSalary
WHEREInCome>1500
2).子查询
(1).查找在财务部工作的雇员的情况
代码:
SELECT*
FROMEmployees
WHEREDepartmentID=
(
SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'
)
(2).查找财务部年龄不低于研发部雇员年龄的雇员的姓名
代码:
SELECTName
FROMEmployees
WHEREDepartmentIDIN
(
SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'
)
AND
Birthday!
>ALL
(
SELECTBirthday
FROMEmployees
WHEREDepartmentIDIN
(
SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='研发部'
)
)
(3).查找比所有财务部的雇员收入都高的雇员的姓名
代码:
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.ID
(2).使用内连接的方法查询名字为“王林”的员工所在的部门
代码:
SELECTDepartmentName
FROMDepartmentsJOINEmployeesONDepartments.DepartmentID=Employees.DepartmentID
WHEREEmployees.Name='王林'
(3).查找财务部收入在2000元以上的雇员明明及其薪水详情
代码:
SELECTName,Income,Expense
FROMEmployees,Salary,Departments
WHEREEmployees.EmployeeID=Salary.ID
ANDEmployees.DepartmentID=Departments.DepartmentID
ANDDepartmentName='财务部'
ANDIncome>2000
4).使用聚合函数查询
(1).求财务部雇员的平均收入
代码:
SELECTAVG(Income)AS'财务部平均收入'
FROMSalary
WHEREIDIN
(
SELECTEmployeeID
FROMEmployees
WHEREDepartmentID=
(
SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'
)
)
(2).求财务部雇员的平均实际收入
代码:
SELECTAVG(Income-Expense)AS'财务部平均实际收入'
FROMSalary
WHEREIDIN
(
SELECTEmployeeID
FROMEmployees
WHEREDepartmentID=
(
SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'
)
)
(3).求财务部雇员的总人数
代码:
SELECTCOUNT(EmployeeID)
FROMEmployees
WHEREDepartmentID=
(
SELECTDepartmentID
FROMDepartments
WHEREDepartmentName='财务部'
)
5).查询结果分组和排序
(1).查找Employees表中男性和女性的人数
代码:
SELECTSex,COUNT(Sex)
FROMEmployees
GROUPBYSex;
(2).查找员工数超过2人的部门名称和员工数量
代码:
SELECTEmployees.DepartmentID,COUNT(*)AS人数
FROMEmployees,Departments
WHEREEmployees.DepartmentID=Departments.DepartmentID
GROUPBYEmployees.DepartmentID
HAVINGCOUNT(*)>2
(3).将各雇员的情况按收入由低到高排列
代码:
SELECTEmployees.*,Salary.*
FROMEmployees,Salary
WHEREEmployees.EmployeeID=Salary.ID
ORDERBYIncome
4、实验结果
1).基本查询
(1).对于实验2给出的数据库表结构,查询每个雇员的所有数据
(2).用SELECT语句查询Employees表中每个雇员的地址和电话
(3).查询EmployeeID为000001的雇员的地址和电话
(4).查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话
(5).查询Employees表中员工的姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”
(6).计算每个雇员的实际收入
(7).获得员工总数
(8).找出所有姓王的雇员的部门号
(9).找出所有收入在2000-3000元之间的员工号码
(10).使用INTO子句,由表Salary创建“收入在1500元以上的员工”表,包括编号和姓名
2).子查询
(1).查找在财务部工作的雇员的情况
(2).查找财务部年龄不低于研发部雇员年龄的雇员的姓名
(3).查找比所有财务部的雇员收入都高的雇员的姓名
3).连接查询
(1).查询每个雇员的情况及其薪水情况
(2).使用内连接的方法查询名字为“王林”的员工所在的部门
(3).查找财务部收入在2000元以上的雇员明明及其薪水详情
4).使用聚合函数查询
(1).求财务部雇员的平均收入
(2).求财务部雇员的平均实际收入
(3).求财务部雇员的总人数
5).查询结果分组和排序
(1).查找Employees表中男性和女性的人数
(2).查找员工数超过2人的部门名称和员工数量
(3).将各雇员的情况按收入由低到高排列
4.2视图的使用
一、实验目的
1.熟悉视图的概念和作用
2.掌握视图的创建方法
3.掌握如何查询和修改视图
二、实验内容
1)创建视图
(1).创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列
(2).创建YGGL数据库上的视图Employees_view,视图包含”员工号码”、“姓名”和“实际收入”三列
2)查询视图
(1).从视图DS_VIEW中查询出部门号为“3”的部门名称
(2).从视图Employees_view中查询出姓名为“王林”的员工的实际收入
3)更新视图
(1).向视图DS_VIEW中插入一行数据“6,广告部,广告业务”
(2).修改视图DS_VIEW,将部门号为“5”的部门名称修改为“生产车间”
(3).将视图Employees_view中员工号为“000001”的员工的姓名修改为“王浩”
(4).删除视图DS_VIEW中部门号为“1”的一行数据
4)删除视图
3、实验程序
1)创建视图
(1).创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列
CREATEVIEWDS_VIEW
ASSELECT*FROMDepartments
(2).创建YGGL数据库上的视图Employees_view,视图包含”员工号码”、“姓名”和“实际收入”三列
CREATEVIEWEmployees_view(ID,name,RealIncome)
AS
SELECTEmployees.Employees,name,Income-Outcome
FROMEmployees,Salary
WHEREEmployees.Employees=Salary.ID
2)查询视图
(1).从视图DS_VIEW中查询出部门号为“3”的部门名称
SELECTDepartmentName
FROMDS_VIEW
WHEREDepartmentsID='3'
(2).从视图Employees_view中查询出姓名为“王林”的员工的实际收入
SELECTRealIncome
FROMEmployees_view
WHEREName='朱俊'
3)更新视图
(1).向视图DS_VIEW中插入一行数据“6,广告部,广告业务”
INSERTINTODS_VIEWVALUES('6','广告部','广告业务')
(5).修改视图DS_VIEW,将部门号为“5”的部门名称修改为“生产车间”
UPDATEDS_VIEW
SETDepartmentName='生产车间'
WHEREDepartmentsID='5'
(6).将视图Employees_view中员工号为“000001”的员工的姓名修改为“王浩”
UPDATEEmployees_view
SETName='王浩'
WHEREID='020010'
(7).删除视图DS_VIEW中部门号为“1”的一行数据
DELETEFROMDS_VIEW
WHEREDepartmentsID='1'
4)删除视图
DROPVIEWDS_VIEW
四、实验结果
1)创建视图
(1).创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列
(2).创建YGGL数据库上的视图Employees_view,视图包含”员工号码”、“姓名”和“实际收入”三列
2)查询视图
(1).从视图DS_VIEW中查询出部门号为“3”的部门名称
(3).从视图Employees_view中查询出姓名为“王林”的员工的实际收入
3)更新视图
(1).向视图DS_VIEW中插入一行数据“6,广告部,广告业务”
(8).修改视图DS_VIEW,将部门号为“5”的部门名称修改为“生产车间”
(9).将视图Employees_view中员工号为“000001”的员工的姓名修改为“王浩”
(10).删除视图DS_VIEW中部门号为“1”的一行数据
4)删除视图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 查询 视图
![提示](https://static.bdocx.com/images/bang_tan.gif)