




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校代码:10128学 号:201220905048 数据库原理及应用实验报告题 目:数据库的查询和视图学生姓名:孙跃学 院:理学院系 别:数学系专 业:信息与计算科学班 级:信计12-2任课教师:侯睿 二 一 五 年 四 月121、 练习目的1、数据库的查询(1)掌握SELECT语句的基本语法;(2)掌握子查询的表示;(3)掌握连接查询的表示;(4)掌握SELECT语句的GROUP BY子句的作用与使用方法;(5)掌握SELECT语句的ORDER BY子句的作用与使用方法;2、视图的使用(1)熟悉视图的概念和作用;(2)熟悉视图的创建方法;(3)熟悉如何查询和修改视图。2、 练习准备1、数据库的查询(1)了解SELECT语句的基本语法格式;(2)了解SELECT语句的执行方法;(3)了解子查询的表示方法;(4)了解连接查询的表示;(5)了解SELECT语句的GROUP BY子句的作用与使用方法;(6)了解SELECT语句的ORDER BY子句的作用;2、视图的使用(1)了解视图的概念;(2)了解创建视图的方法;(3)了解并掌握对视图的操作。3、 实验程序实验4.1 数据库的查询1、(1)对于实验2给出的数据库结构,查询每个雇员的所有数据.USE YGGLGOSELECT * FROM Employees(2)用SELECT语句查询Employees表中每个雇员的地址和电话.SELECT Address,PhoneNumber FROM Employees(3)查询EmployeeID为000001的雇员的地址和电话.SELECT Address,PhoneNumberFROM EmployeesWHERE EmployeeID=000001GO(4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别制定地址和电话.SELECT Address AS 地址,PhoneNumber AS 电话FROM EmployeesWHERE Sex=0(5)查询Employees表中员工姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”.SELECT Name AS 姓名,CASEWHEN Sex=1 THEN男WHEN Sex=0 THEN 女END AS 性别FROM Employees(6)计算每个员工的实际收入.SELECT EmployeeID,实际收入=InCome-OutComeFROM Salary(7)获得员工总数.SELECT COUNT(*)FROM Employees(8)找出所有姓王的雇员的部门号.SELECT DepartmentIDFROM EmployeesWHERE Name LIKE王%(9)找出所有收入在20003000之间的员工号码.SELECT EmployeeIDFROM SalaryWHERE InCome BETWEEN 2000 AND 3000(10)使用INTO子句,由表Salary创建“收入在1500以上的员工表”,包括编号和收入.SELECT EmployeeID as 编号,InCome as 收入INTO 收入在以上的员工FROM SalaryWHERE InCome15002、子查询的使用.(1)查询在财务部工作的雇员的情况.SELECT *FROM EmployeesWHERE DepartmentID=(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName=财务部)(2)查询财务部年龄不低于研究部雇员年龄的雇员的姓名.SELECT NameFROM EmployeesWHERE DepartmentID IN(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName=财务部)AND Birthday!ALL(SELECT BirthdayFROM EmployeesWHERE DepartmentID IN(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName=研发部)(3)查找比所有财务部的雇员收入都高的雇员的姓名.SELECT NameFROM EmployeesWHERE EmployeeID IN(SELECT EmployeeIDFROM SalaryWHERE InComeALL(SELECT InComeFROM SalaryWHERE EmployeeID IN(SELECT EmployeeIDFROM EmployeesWHERE DepartmentID=(SELECT EmployeeIDFROM DepartmentsWHERE DepartmentName=财务部)3、连接查询的使用(1)查询每个雇员的情况及其薪水的情况SELECT Employees.*,Salary.*FROM Employees,SalaryWHERE Employees.EmployeeID=Salary.EmployeeID(2)使用内连接的方法查询名字为“王林”的员工所在的部门SELECT DepartmentNameFROM Departments JOIN EmployeesON Departments.DepartmentID=Employees.DepartmentIDWHERE Employees.Name=王林(3)查询财务部收入在2000以上的雇员姓名及其薪水详情.SELECT Name,InCome,OutComeFROM Employees,Salary,DepartmentsWHERE Employees.EmployeeID=Salary.EmployeeIDAND Employees.DepartmentID=Departments.DepartmentIDAND DepartmentName=财务部AND InCome20004、聚合函数的使用.(1)求财务部雇员的平均收入.SELECT AVG(InCome)AS财务部平均收入FROM Salary WHERE EmployeeID IN(SELECT EmployeeIDFROM EmployeesWHERE DepartmentID=(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName=财务部)(2)财务部雇员的平均实际收入.SELECT AVG(InCome-OutCome)AS财务部平均实际收入FROM Salary WHERE EmployeeID IN(SELECT EmployeeIDFROM EmployeesWHERE DepartmentID=(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName=财务部)(3)求财务部雇员的总人数SELECT COUNT(EmployeeID)FROM EmployeesWHERE DepartmentID=(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName=财务部)5、GROUP BYORDER BY子句的使用.(1)Emyees表中的男性和女性的人数SELECT Sex,COUNT(Sex)FROM EmployeesGROUP BY Sex;(2)查找员工数超过2人的部门名称和员工数量.SELECT (Employees.DepartmentID),COUNT(*)AS人数FROM Employees,DepartmentsWHERE Employees.DepartmentID=Department.DepartmentIDGROUP BY Employees.DepartmentIDHAVING COUNT(*)2(3)将各雇员的情况按收入由低到高排列.SELECT Employees.*,Salary.*FROM Employees,SalaryWHERE Employees.EmployeeID=Salary.EmployeeIDORDER BY InCome实验4.2 视图的使用1、创建视图1 创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列。2 创建YGGL数据库上的视图Employees_view,视图包含员工号码、姓名和实际收入三列。2、查询视图(1)从视图DS_VIEW,中查询出部门号为3的部门名称。(2)从视图Employees_view查询出姓名为“王林”的员工的实际收入。CREATEVIEWEmployees_view(EmployeeID,Name,RealIncome)ASSELECTEmployees.EmployeeID,Name,InCome-OutComeFROMEmployees,SalaryWHEREEmployees.EmployeeID=Salary.EmployeeID3、更新视图 在更新视图前需要了解可更新视图的概念,了解什么视图时不可以进行修改的。更新视图真正更新的是和视图关联的表。(1)向视图 DS_VIEW中插入一行数据:“6,广告部,广告业务”。(2)修改视图DS_VIEW,将部门号为5的部门名称修改为“生产车间”。(3)修改视图Employees_view中员工号为“000001”的员工姓名为“王浩”。(4)删除视图DS_VIEW中部门号为“1”的一行数据。SELECT DepartmentNameFROM DS_VIEWWHERE DepartmentID=3SELECT RealIncomeFROM Employees_viewWHERE Name=王林INSERTINTODS_VIEWVALUES(6,广告部,广告业务部)UPDATEDS_VIEWSETDepartmentName=生产车间WHEREDepartmentID=5DELETEFROMDS_VIEWWHEREDepartmentID=14、删除视图 删除视图DS_VIEW。DROP VIEW DS_VIEW在界面工具中操作视图。(1)创建视图 :启动“SQL Server Management Studio”然后在“对象资源管理器”中展开“数据库”,在”PXSCJ”中选择其中的“视图”项,右击鼠标,在弹出的的快捷菜单上选择“新建视图”菜单项。在随后出现的添加表窗口中,添加需要关联的基本表。在视图窗口的关系图窗口显示基表的全部列信息。根据需要在窗口中选择创建视图所需的字段。完成后单击“保存”按钮保存。(2)查询视图:新建一个查询,输入T-SQL查询命令即可和查询表一样查询视图。删除视图:展开YGGL数据库-“视图”-选择要删除的视图-右击选择“删除”选项,确认即可。4、 实验结果一、(1) 对于实验2给出的数据库结构,查询每个雇员的所有数据.(2)用SELECT语句查询Employees表中每个雇员的地址和电话.(3)查询EmployeeID为000001的雇员的地址和电话.(4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别制定地址和电话(5)查询Employees表中员工姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”.(6)计算每个员工的实际收入.(7)获得员工总数.(8)找出所有姓王的雇员的部门号.(9)找出所有收入在20003000之间的员工号码.(10)使用INTO子句,由表Salary创建“收入在1500以上的员工表”,包括编号和收入.二、子查询的使用.(1)查询在财务部工作的雇员的情况.(2)查询财务部年龄不低于研究部雇员年龄的雇员的姓名.(3)查找比所有财务部的雇员收入都高的雇员的姓名.三、连接查询的使用.(1)查询每个雇员的情况及其薪水的情况(2)使用内连接的方法查询名字为“王林”的员工所在的部门(3)查询财务部收入在2000以上的雇员姓名及其薪水详情.四、聚合函数的使用.(1)求财务部雇员的平均收入.(2)财务部雇员的平均实际收入.(3)求财务部雇员的总人数五、GROUP BYORDER BY子句的使用.(1)Emoyee
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水库环境影响评估与防护方案
- 桥梁施工阶段风险控制方案
- 园林绿化施工技术要点
- 2025年温州永嘉县人民医院医共体分院招聘劳务派遣人员2人考前自测高频考点模拟试题及完整答案详解1套
- 2025年韩国概况考试试题及答案
- 考研数学电路题库及答案
- 2025年衢州市柯城区医疗卫生事业单位公开引进高层次紧缺人才22人考前自测高频考点模拟试题附答案详解(典型题)
- 园林绿化施工与维护技术方案
- 2025春期河南鸿唐教育集团招聘教师63人模拟试卷附答案详解(完整版)
- 2025福建省船舶工业集团有限公司招聘5人模拟试卷完整答案详解
- 企业内部控制流程培训资料
- 2026届湖南省天一大联考高三上学期阶段性检测(一)数学试题
- 员工受伤安全认知培训课件
- 2025年高考物理山东卷试卷评析及备考策略(课件)
- 护理人力资源配置
- 中职生就业指导课件
- 2025年大队委笔试题目及答案
- 2025湖北宜昌市不动产交易和登记中心招聘编外聘用人员17人考试参考题库及答案解析
- 收费站复工复产安全培训课件
- 2025年重庆市两江新区小升初语文试卷
- 新版《煤矿安全规程》考试题库及答案
评论
0/150
提交评论