实验七数据库视图的创建与管理.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验七数据库视图的创建与管理

实验七 视图创建与管理 视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制 视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表,只放视图定义,不存放对应的数据,数据仍在原来的基本表中。 基本表中数据发生变化,从视图中查询出的数据也随着变化了。 视图可以和基本表一样被查询、删除,也可在其基础上再定义新视图,但对视图的更新有一定的限制。 视图是一种SQL查询. 3.5.1 视图的创建与撤消 st_no st_name st_sex st_age st_depid 070301 康洪 18 男 01 070302 张力 20 男 03 070303 李小言 19 女 02 070304 庞倩 20 女 03 st_no st_name st_sex 070301 康洪 男 070302 张力 女 070303 李小言 男 070304 庞倩 女 学生视图 数据库只存放视图定 义,而不存放视图对应的数据,通过视图看到的数据只是存放在原来的基本表中 create view 学生及选课信息 as select 姓名,系号,课程号,成绩 from 学生表,选课表 where 学生表.学号=选课表.学号 select 系号 from 学生及选课信息 where 课程号=’02’ select 姓名 from 学生及选课信息 where 成绩60 create view [02课程] as select 系号 from 学生表,选课表 where 学生表.学号=选课表.学号 and 课程号=’02’ create view 不及格学生名单 as select 姓名 from 学生表,选课表 where 学生表.学号=选课表.学号 and 成绩60 3.5.1 视图的创建与撤消 (1)企业管理器 (2)用SQL语句 create view 视图名 [with encryption] as select 语句 [with check option] 3.5.1 视图的创建与撤消 例3.46 创建系号为“11”的学生学号、姓名和年龄的视图。 CREATE VIEW departmentview AS SELECT 学号,姓名,年龄 FROM 学生表 WHERE 系号=11 例3.47 创建选修“01”号课程且成绩大于等于90分的学生的视图。 CREATE VIEW excellent AS SELECT 学生表.学号,姓名,性别,年龄 FROM 学生表,选课表 WHERE 学生表.学号=选课表.学号 AND 成绩=90 and 课程号=01 3.5.1 视图的创建与修改 2.修改视图的定义 ALTER VIEW 视图名 As SQL 语句 3.撤消视图 DROP VIEW 视图名; 例3.48 撤消excellent视图。 DROP VIEW excellent 执行此语句后,删除的只是excellent视图的定义,对实际表中的数据并没有任何影响。 3.5.2 视图的更新 视图的更新包括插入(INSERT)、删除(DELETE)和更新(UPDATE)三类操作。由于视图是虚表,所以对视图的更新可以转变成一个等价的对基本表的更新,更新操作最终作用在基本表上。 3.5.2 视图的更新 例: 向视图departmentview中插入一条新记录。 INSERT INTO departmentview VALUES(0703,高大帅,18) DBMS将其转换为对基本表的插入 INSERT INTO 学生表 VALUES(‘0703’,‘高大帅’, NULL, 18) 3.5.2 视图的更新 例: 将视图departmentview中学号为“021”的学生的年龄改为19。 UPDATE departmentview SET 年龄=19 WHERE 学号=‘021’ 转换后的更新语句为: UPDATE 学生表 SET 年龄 = 19 WHERE 学号=‘021’ 3.5.2 视图的更新 例:删除视图departmentview中学号为“021”的记录。 DELETE FROM departmentview WHERE 学号=‘021’ 转换为对基本表的更新为: DELETE FROM 学生表 WHERE 学号=‘021’ 3.5.2 视图的更新 更新操作并不适合于所有的视图,对于视图的更新有如下规定: (1)在两个以上基本表上使用连接操作定义的连接视图不可以更新。 (2)所有行列子集视图,如果基本表中所有不允许空值的列都出现在视图中,则可以对其更新。 (3)使用分组和聚集函数定义的视图不可以更新。 (4)带

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档