第九章实验

更新时间:2024-07-04 00:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

云南师范大学信息学院

实 验 报 告

学号: 姓名: 班级: 课程名称:大型数据库管理系统 实验名称: Transact-SQL程序结构 实验性质:①综合性实验 ②设计性实验 ③验证性实验 试验时间: 试验地点: 本试验所用的设备:SQL Server2005、计算机一台 实验目的: 1. 理解视图的概念 2. 掌握创建视图、加密视图的方法 3. 掌握试图待检查项和不带检查项的区别 4. 掌握视图更新的概念和方法 实验内容及过程: (1) 针对员工表创建一个视图, 取员工表的前4个属性,要求带WITH ENCRYPTION。使用sp_helptext和在syscomments表中分别观察定义的文本。最后利用定义的视图进行查询。 代码如下: use xmgl1 GO if exists (select table_name from information_schema.views where table_name ='员工表_视图') drop view 员工表_视图 go create view 员工表_视图 with encryption as select 员工号,姓名,性别,出生年月 from 员工表 go --使用sp_helptext观察定义的文本 sp_helptext 员工表_视图 --查询sysobjects 表中'员工表_视图'的id号 select *from sysobjects where name='员工表_视图' --查询syscomments表中text项 select *from syscomments where id='453576654' --查询员工表_视图 SELECT * FROM 员工表_视图 --加密 (2) 创建一个查询参加所有项目的员工视图“V1_视图”,包括员工号、姓名,所在部门名。并进行查询。 代码如下: if exists (select table_name from information_schema.views where table_name = 'V1_视图') drop view V1_视图 go create view V1_视图(员工号, 姓名, 所在部门名) as select 员工号, 姓名,部门名 from 员工表,部门表 where 员工表.所在部门号=部门表.部门号 and 员工号 in (select 员工号 from 员工表 where not exists (select * from 项目表 where not exists (select * from 员工参与项目表 where 员工号=员工表.员工号 and 项目编号=项目表.项目编号))) ---查询 select * from V1_视图

(3) 创建只包含部门名是“人事处”的显示部门信息的视图“V2_视图”,不带WITH CHECK OPTION 。 代码如下: if exists (select table_name from information_schema.views where table_name = 'V2_视图') drop view V2_视图 go create view V2_视图 as select * from 部门表 where 部门名='人事处' ① 该视图上分别插入部门是“办公室”和“人事处”观察执行结果。 代码如下: insert into V2_视图 values ('1006','办公室',88922666,'XX苑XX幢206室',2012,NULL) insert into V2_视图 values ('1007','人事处',88922777,'XX苑XX幢207室',2013,NULL) ② 分别修改该视图针对部门是“办公室”和“人事处”的其他属性数据,观察执行结果。 代码如下: update V2_视图 set 部门电话=88933666 where 部门名='办公室' update V2_视图 set 部门电话=88933777 where 部门名='人事处' ③ 分别删除部门是“办公室”和“人事处”的记录,分别观察执行情况。 代码如下: delete from V2_视图 where 部门名='办公室' delete from V2_视图 where 部门名='人事处' (4) 创建只包含部门名是“人事处”的显示部门信息的视图“V3_视图”,带WITH CHECK OPTION 。 代码如下: if exists (select table_name from information_schema.views where table_name = 'V3_视图') drop view V3_视图 go create view V3_视图 as select * from 部门表 where 部门名='人事处' with check option --①在该视图上分别插入部门是“办公室”和“人事处”的部门数据,观察执行结果。 代码如下: insert into V3_视图 values ('1008','办公室',88922888,'XX苑XX幢208室',2014,NULL) insert into V3_视图 values ('1009','人事处',88922999,'XX苑XX幢209室',2015,NULL) ②分别修改该视图针对部门是“办公室”和“人事处”的其他属性数据,观察执行结果。 代码如下:

update V3_视图 set 部门电话=88993322 where 部门号='1008' update V3_视图 set 部门电话=88993355 where 部门号='1009' ③分别删除部门是“办公室”和“人事处”的记录,分别观察执行情况。 代码如下: delete from V3_视图 where 部门名='办公室' delete from V3_视图 where 部门名='人事处' (5) 创建查询员工叫“张三”是哪个部门的视图“V4_视图”,然后在该视图里删除“张三”的所有信息,观察执行情况。为什么是这样? 代码如下: if exists (select table_name from information_schema.views where table_name = 'V4_视图') drop view V4_视图 go create view V4_视图 as select 姓名,部门名 from 员工表,部门表 where 员工表.所在部门号=部门表.部门号 and 姓名='张三' delete from V4_视图 where 姓名='张三' 任课教师评语: 教师签字: 年 月 日 注:每学期至少一次设计性实验。每学期结束请任课教师按时按量统一交到教学秘书处

本文来源:https://www.bwwdw.com/article/wzn.html

Top