欢迎来到天天文库
浏览记录
ID:56329001
大小:87.35 KB
页数:7页
时间:2020-06-11
《数据库实验5实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、淮海工学院计算机工程学院实验报告书课程名:《数据库原理及应用》题目:数据库的完整性班级:软件132学号:2013122907姓名:孙莹莹评语:成绩:指导教师:批阅时间:年月日《数据库原理及应用》实验报告-6–一.目的与要求1.掌握索引创建和删除的方法;2.掌握创建视图和使用视图的方法;3.掌握完整性约束的定义方法,包括primarykey、foreignkey等。二.实验内容1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。2.在salary表的“职工
2、号”和“日期”列创建聚集索引,并且强制唯一性。3.建立视图view1,查询所有职工的职工号、姓名、部门名和2004年2月工资,并按部门名顺序排列。4.建立视图view2,查询所有职工的职工号、姓名和平均工资;5.建立视图view3,查询各部门名和该部门的所有职工平均工资;6.显示视图view3的定义;7.实施worker表的“性别”列默认值为“男”的约束;8.实施salary表的“工资”列值限定在0~9999的约束;9.实施depart表的“部门号”列值唯一的非聚集索引的约束;10.为worker表建立外键“部门号”,参考表depart的“部
3、门号”列。11.建立一个规则sex:@性别=’男’OR@性别=’女’,将其绑定到“性别”上;12.删除上面第7、8、9和10建立的约束;13.解除第11题所建立的绑定并删除规则sex。三.实验步骤1USEfactoryGO--判断是否存在depno索引;若存在,则删除之IFEXISTS(SELECTnameFROMsysindexesWHEREname='depno')DROPINDEXworker.depnoGO--创建depno索引CREATEINDEXdepnoONworker(部门号)GOEXECsp_helpindexworkerG
4、O2USEfactoryGO--判断是否存在no_date索引;若存在,则删除之IFEXISTS(SELECTnameFROMsysindexesWHEREname='no_date')DROPINDEXsalary.no_dateGO--创建no_date索引《数据库原理及应用》实验报告-6–CREATEUNIQUECLUSTEREDINDEXno_dateONsalary(职工号,日期)GOEXECsp_helpindexsalaryGO3USEfactoryGO--如果视图viewl存在,则删除IFEXISTS(SELECT*FROMs
5、ysobjectsWHEREname='view1'ANDtype='V')DROPVIEWview1GO--创建视图viewlCREATEVIEWview1ASSELECTTOP15worker.职工号,worker.姓名,depart.部门名,salary.工资AS'2004年月工资'FROMworker,depart,salaryWHEREworker.部门号=depart.部门号ANDworker.职工号=salary.职工号ANDYEAR(salary.日期)=2004ANDMONTH(salary.日期)=2ORDERBYwork
6、er.部门号GOSELECT*FROMview1GO4USEfactoryGO--如果视图view2存在,则删除IFEXISTS(SELECT*FROMsysobjectsWHEREname='view2'ANDtype='V')DROPVIEWview2GO--创建视图view2CREATEVIEWview2ASSELECTworker.职工号,worker.姓名,AVG(salary.工资)AS'平均工资'FROMworker,salaryWHEREworker.职工号=salary.职工号GROUPBYworker.职工号,worker
7、.姓名GOSELECT*FROMview2GO5USEfactoryGO--如果视图view3存在,则删除IFEXISTS(SELECT*FROMsysobjectsWHEREname='view3'ANDtype='V')DROPVIEWview3GO--创建视图view3《数据库原理及应用》实验报告-6–CREATEVIEWview3ASSELECTdepart.部门名,AVG(salary.工资)AS'平均工资'FROMworker,depart,salaryWHEREworker.部门号=depart.部门号ANDworker.职工号
8、=salary.职工号GROUPBYdepart.部门名GOSELECT*FROMview3GO6USEfactoryGOEXECsp_helptext'view3
此文档下载收益归作者所有