关系数据库SQL.ppt

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

3.5.1 视图概念 ①视图是虚表 查询结果是关系,但DBMS并不将查询结果存储在数据库中,只在数据字典中存储视图的定义。访问视图时,DBMS查找视图的定义,并执行其对应的SELECT语句。 DBMS将SELECT语句命名并保存。 视图是命名保存的SELECT语句 * 3.5.1 视图概念 在上例中,DBMS并不保存CS系的1000行数据,这些数据仍保存在student表中。 DBMS只保存对应的视图名及对应的SELECT SELECT sno,sname,ssex,sage FROM student WHERE sdept=CS; 当访问视图时,就执行视图对应的该SELECT语句。因此当基本表的数据改变时,相应的视图数据也随之改变。 * 3.5.1 视图概念 ②视图象表一样使用 从用户角度看,视图呈现给用户的是关系。与基本表类似,可以使用SELECT、INSERT、DELETE、UPDATE对视图进行操作。 但是,对视图的操作最终转化为对基本表进行操作,所以对视图的操作有一定的限制。 * 3.5.1 视图概念 2.视图分类 根据视图的数据来源,可以将视图分为以下几类:(本质是对SELECT语句分类) ①列视图 :视图只包含一个表的一列或多列(一般主码在其中)。 ②行视图 :视图只包含一个基本表的某些行(记录)。 * 3.5.1 视图概念 ③行列视图:由基本表的某些列(主码在其中)和某些行组成的视图,又称为行列子集视图 ④连接视图:视图是由多个表连接而成。 ⑤计算视图:视图的某些列是根据基本表的列值计算出来的,又称为带表达式的视图 * 3.5.1 视图概念 ⑥分组视图:视图是某基本表的分组后统计结果。 ⑦合并视图:视图是由几个分区或几个小表合并的大型虚拟表。 实际视图,可以是几种类型的组合。 * 3.5.2 建立视图 1.建立视图 SQL用CREATE VIEW命令建立视图: CREATE VIEW 视图名 [(列名1 [,列名2],…)] AS 子查询 [WITH CHECK OPTION] [WITH READ ONLY]; * 3.5.2 建立视图 (1)视图名:视图名要代表视图数据来源,一般用view_基本表_xxx的命名形式。 * 3.5.2 建立视图 (2)列名序列:所建视图包含的列名,可省略。当列名序列省略时,直接使用子查询SELECT中的列名作视图列名。下列情况不能省略列名(或SELECT使用列别名) ①视图列名中有聚集函数或表达式; ②视图列名中有从多个表中选出的同名列; * 3.5.2 建立视图 (3)子查询限制:可以是任意复杂的SELECT语句,但: 不能使用DISTINCT和INTO关键字, 不能包含ORDER BY子句, 不能包含COMPUTE或COMPUTE BY子句。 (不同的DBMS有差异) * 3.5.2 建立视图 (4)WITH CHECK OPTION选项,该选项表示对视图进行INSERT、DELETE、UPDATE更新操作时,让系统检查该操作的行是否满足子查询中WHERE的条件,若不满足,则系统拒绝执行。即保证增改后的行仍在视图中,删除也只能删除视图中的行。 * 3.5.2 建立视图 (5)WITH READ ONLY选项表明是只读视图,只能查询视图(读),不允许对该视图进行增删改(写)的更新操作。 * 3.5.2 建立视图 例1:行列视图,指定列 建立所有女生的视图 CREATE VIEW view_student_f (no,name,age,dept) AS SELECT sno,sname,sage,sdept FROM student WHERE ssex=女; * 3.5.2 建立视图 例2:行列只读视图 建立CS系的学生信息只读视图 CREATE VIEW view_student_cs AS SELECT sno,sname,ssex,sage FROM student WHERE sdept=CS WITH READ ONLY; * 3.5.2 建立视图 例3:行列检查视图 建立IS系的学生信息检查视图。 CREATE VIEW view_student_is AS SELECT sno,sname,ssex,sage FROM student WHERE sdept=IS WITH CHECK OPTION; * 3.5.2 建立视图 例4:从视图导出的视图 建立CS系视图的女生视图 CREATE VIEW view_student_cs_f AS SELECT sno,sname,sage FROM view_student_cs WHERE ssex=女; * 3.5.2 建立视图 例5:连接视图

文档评论(0)

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

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

1亿VIP精品文档

相关文档