视图和索引(数据库实验4)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库基础与实践实验报告实验四视图与索引

班级:惠普测试142

学号:********13

**:***

日期:2016—11-13

1实验目得:

1)掌握SQL进行视图创建得方法;

2)掌握SQL进行视图更新得方法,理解视图更新受限得原因;

3)掌握SQL进行索引创建及删除得方法、

2 实验平台:

操作系统:Windows xp。

实验环境:SQL Server 2000以上版本。

3实验内容与步骤

利用实验一创建得sch_id数据库完成下列实验内容。

1.定义视图V_TCS(定义时不加withcheck option),存放全部计算机系老师得信息。

视图定义代码:

CREATE VIEWV_TCSAS

ﻩSELECTtno,tn,sex,age,prof,sal,comm,T.dno

FROMT,D

WHERET、dno=D.dno AND D.dn=’计算机'

视图查询语句与查询结果截图:

SELECT*FROMV_TCS

2.定义视图V_sal,存放全体教师得教师号,教师姓名,教师酬金(工资+岗位津贴),职称信息。视图定义代码:

CREATEVIEWV_sal AS

SELECTtno教师号,tn教师姓名,sal+comm教师酬金,prof支撑信息

FROMT

视图查询语句与查询结果截图:

SELECT*FROMV_sal

3.向V_TCS中插入一条计算机专业教师得新记录,并查询V_TCS视图得全部记录。视图更新代码:

INSERTINTOV_TCS

SELECT'T10','良瑗’,'女’,20,'讲师',6000,8000,D.dno

FROM D

ﻩWHERED。dn='计算机'

视图查询语句与查询结果截图:

SELECT*FROM V_TCS

4.向V_TCS中插入一条信息专业教师得新记录,并查询V_TCS视图得全部记录。视图更新代码:

INSERT INTOV_TCS

ﻩSELECT'T11’,'百里登风',’男',21,’讲师',6000,8000,D。dno FROM D

WHERE D.dn='信息’

视图查询语句与查询结果截图:

SELECT*FROM V_TCS

SELECT*FROMT WHEREtno='T11'

5.修改V_TCS中得记录,使得编号为t2得教师得职称为副教授。

视图更新代码:

UPDATEV_TCS SETprof='副教授'WHEREtno='T2’

视图查询语句与查询结果截图:

SELECT*FROMV_TCSWHEREtno='T2'

6.定义视图V_TCS_ck(定义时加withcheck option),存放全部计算机系老师得信息,对

比该视图与V_TCS在进行数据更新时得差别、

视图定义代码:

CREATEVIEW V_TCS_ckASSELECT tno,tn,sex,age,prof,sal,m,T。dno FROM T,D

WHERE T.dno=D。dno AND D、dn=’计算机’

WITH CHECK OPTION

视图更新对比实验代码及运行结果截图:

—-1、能插入

INSERTINTOV_TCS_ck

SELECT’T12','良莠','女’,20,'讲师’,4000,4000,D、dno

ﻩFROM D

ﻩWHERE D。dn=’计算机'

——2。不能插入(视图CHECK OPTION约束)

INSERT INTO V_TCS_ck

SELECT’T13',’天明’,'男’,25,’讲师’,4000,4000,D.dno

ﻩFROM D

WHERED。dn='信息'

7.在课程C表得课程名属性上按降序创建唯一索引I_cn、

索引定义代码:

CREATEINDEX I_cn ON C(cnDESC)

运行结果截图:

8.删除C表上得索引I_cn。

索引删除代码:

DROP INDEXC。I_cn

运行结果截图:

4深入思考与讨论

1)请先自己定义一个视图,使定义该视图得查询中使用连接。再更新该视图,观察视图更新受限情况。

——1、定义:

CREATE VIEW V_SC AS

ﻩSELECT sn,S、sno,cn,score

ﻩFROMS,C,SC

WHERE S。sno=SC、sno AND C.cno=o

—-2.查询:

SELECT*FROM V_SC

—-3、均无法插入(插入影响到多张表):

INSERT INTOV_SC VALUES(’笑笑',’S1','JAVA',99)

INSERT INTO V_SC VALUES('笑笑’,’S1',’RUBY',99)

INSERT INTOV_SC VALUES('良垣’,’S15’,'JAVA',99)

INSERTINTO V_SCVALUES(’良莠’,'S1',’JAVA',99)

SELECT*FROM V_SCWHERE sno='S1’

--4。可以更新(修改分数只影响到SC一张表):

UPDATE V_SCSET V_SC、score=99WHERE V_SC。cn='大学英语'ANDV_SC.sno='S1’

SELECT*FROMV_SC WHEREsno='S1'

相关文档
最新文档