网站大量收购独家精品文档,联系QQ:2885784924

第3章关系数据库标准语言SQL3讲义.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 关系数据库标准语言 3.5 视图 定义视图 查询视图 更新视图 视图的特点 3.5.1定义视图 一、创建视图 格式为: CREATE VIEW 视图名[(列名[,列名]...)] AS 子查询 [WITH CHECK OPTION] 其中子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY子句和DISTINCT短语。 WITH CHECK OPTION表示对视图进行UPDATE、 INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。 如果CREATE VIEW语句仅指定了视图名,省略了组成视图的各个属性列名,则隐含该视图由子查询中SELECT子句目标列中的诸字段组成。 3.5.1定义视图 在下列三种情况下必须明确指定组成视图的所有列名: 其中某个目标列不是单纯的属性名,而是集函数或列表达式 多表连接时选出了几个同名列作为视图的字段 需要在视图中为某个列启用新的更合适的名字    需要说明的是,组成视图的属性列名必须依照上面的原则,或者全部省略或者全部指定,没有第三种选择。 注: CREATE VIEW 必须是批查询中的第一条语句。 3.5.1定义视图 例1 建立信息系学生的视图。 create view is_student as select xh,xm,nl from student where xi=is DBMS执行CREATE VIEW语句的结果只是把对视图的定义存入数据字典,并不执行其中的SELECT语句。只是在对视图查询时,才按视图的定义从基本表中将数据查出。 3.5.1定义视图 例2 建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生 create view is_student1 as select xh,xm,nl from student where xi=is‘ with check option 由于在定义IS_Student1视图时加上了WITH CHECK OPTION子句,以后对该视图进行插入、修改和删除操作时,DBMS会自动加上XI=IS的条件。 3.5.1定义视图 说明(针对SQL Server): insert into is_student (xh,xm,nl) values (‘3001510101’,‘王一’,20) insert into is_student1 (xh,xm,nl) values (‘3001510101’,‘王一’,20) 第2)句会产生错误?? 更改:在视图中加入is系 create view is_student as select xh,xm,nl,xi from student where xi=is‘ with check option insert into is_student1 (xh,xm,nl,xi) values (‘3001510101’,‘王一’,20,‘is’) 3.5.1定义视图 视图不仅可以建立在单个基本表上,也可以建立在多个基本表上。 例3 建立信息系选修了001号课程的学生的视图 create view is_s1(xh,xm,cj) as select student.xh,xm,cj from student,cj where xi=is and student.xh=cj.xh and cj.kch=001 还可以建立在一个或多个已定义好的视图上,或同时建立在基本表与视图上。 例4 建立信息系选修了1号课程且成绩在90分以上的学生的视图 CREATE VIEW IS_S2 AS SELECT xh,xm,cj FROM IS_S1 WHERE cj=90 视图IS_S2就是建立在视图IS_S1之上的。 3.5.1定义视图 带表达式的视图: 例5 定义一个反映学生出生年份的视图 CREATE VIEW BT_S(xh,xm,csnf) as select xh,xm,2015-nl from student 由于BT_S视图中的出生年份值是通过一个表达式计算得到的,不是单纯的属性名,所以定义视图时必须明确定义该视图的各个属性列名。BT_S视图是一个带表达式的视图。 分组视图:带有集函数和GROUP BY子句的查询 例6 将学生的学号及他的平均成绩定义为一个视图 CREATE VIEW S_G(xh,pjcj) AS SELECT xh, AVG(cj) FROM cj GROUP BY xh 3.5.1定义视图 例7 将Student表中所有女生记录定义为一个视图 CREATE VIEW

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档