资源描述:
《视图和索引(数据库实验4).pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库基础与实践实验报告实验四视图和索引班级:惠普测试142学号:1408090213姓名:闫伟明日期:2016-11-131实验目的:1)掌握SQL进行视图创建的方法;2)掌握SQL进行视图更新的方法,理解视图更新受限的原因;3)掌握SQL进行索引创建及删除的方法。2实验平台:操作系统:Windowsxp。实验环境:SQLServer2000以上版本。3实验内容与步骤利用实验一创建的sch_id数据库完成下列实验内容。1.定义视图V_TCS(定义时不加withcheckoption),存放全部计算机系老师的信息。视图定
2、义代码:CREATEVIEWV_TCSASSELECTtno,tn,sex,age,prof,sal,comm,T.dnoFROMT,DWHERET.dno=D.dnoANDD.dn='计算机'视图查询语句与查询结果截图:SELECT*FROMV_TCS2.定义视图V_sal,存放全体教师的教师号,教师姓名,教师酬金(工资+岗位津贴),职称信息。视图定义代码:CREATEVIEWV_salASSELECTtno教师号,tn教师姓名,sal+comm教师酬金,prof支撑信息FROMT视图查询语句与查询结果截图:SELEC
3、T*FROMV_sal3.向V_TCS中插入一条计算机专业教师的新记录,并查询V_TCS视图的全部记录。视图更新代码:INSERTINTOV_TCSSELECT'T10','良瑗','女',20,'讲师',6000,8000,D.dnoFROMDWHERED.dn='计算机'视图查询语句与查询结果截图:SELECT*FROMV_TCS4.向V_TCS中插入一条信息专业教师的新记录,并查询V_TCS视图的全部记录。视图更新代码:INSERTINTOV_TCSSELECT'T11','百里登风','男',21,'讲师',60
4、00,8000,D.dnoFROMDWHERED.dn='信息'视图查询语句与查询结果截图:SELECT*FROMV_TCSSELECT*FROMTWHEREtno='T11'5.修改V_TCS中的记录,使得编号为t2的教师的职称为副教授。视图更新代码:UPDATEV_TCSSETprof='副教授'WHEREtno='T2'视图查询语句与查询结果截图:SELECT*FROMV_TCSWHEREtno='T2'6.定义视图V_TCS_ck(定义时加withcheckoption),存放全部计算机系老师的信息,对比该视图与
5、V_TCS在进行数据更新时的差别。视图定义代码:CREATEVIEWV_TCS_ckASSELECTtno,tn,sex,age,prof,sal,comm,T.dnoFROMT,DWHERET.dno=D.dnoANDD.dn='计算机'WITHCHECKOPTION视图更新对比实验代码及运行结果截图:--1.能插入INSERTINTOV_TCS_ckSELECT'T12','良莠','女',20,'讲师',4000,4000,D.dnoFROMDWHERED.dn='计算机'--2.不能插入(视图CHECKOPTIO
6、N约束)INSERTINTOV_TCS_ckSELECT'T13','天明','男',25,'讲师',4000,4000,D.dnoFROMDWHERED.dn='信息'7.在课程C表的课程名属性上按降序创建唯一索引I_cn。索引定义代码:CREATEINDEXI_cnONC(cnDESC)运行结果截图:8.删除C表上的索引I_cn。索引删除代码:DROPINDEXC.I_cn运行结果截图:4深入思考与讨论1)请先自己定义一个视图,使定义该视图的查询中使用连接。再更新该视图,观察视图更新受限情况。--1.定义:CREAT
7、EVIEWV_SCASSELECTsn,S.sno,cn,scoreFROMS,C,SCWHERES.sno=SC.snoANDC.cno=SC.cno--2.查询:SELECT*FROMV_SC--3.均无法插入(插入影响到多张表):INSERTINTOV_SCVALUES('笑笑','S1','JAVA',99)INSERTINTOV_SCVALUES('笑笑','S1','RUBY',99)INSERTINTOV_SCVALUES('良垣','S15','JAVA',99)INSERTINTOV_SCVALUES(
8、'良莠','S1','JAVA',99)SELECT*FROMV_SCWHEREsno='S1'--4.可以更新(修改分数只影响到SC一张表):UPDATEV_SCSETV_SC.score=99WHEREV_SC.cn='大学英语'ANDV_SC.sno='S1'SELECT*FROMV_SCWHEREsno='S