数据库系统原理-第5章.ppt

数据库系统原理-第5章.ppt

ID:61896494

大小:211.50 KB

页数:26页

时间:2021-03-26

数据库系统原理-第5章.ppt_第1页
数据库系统原理-第5章.ppt_第2页
数据库系统原理-第5章.ppt_第3页
数据库系统原理-第5章.ppt_第4页
数据库系统原理-第5章.ppt_第5页
资源描述:

《数据库系统原理-第5章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、视图是由一个或多个基本表导出的表,其内容由子查询定义。 在数据库中只存储视图的定义,不存储数据,在引用时,由基本表中的数据动态生成。 对视图的操作,都转换成对基本表的操作。第5章数据库的视图P895.1视图的定义5.1.1视图的概念1(1)可简化用户的操作 (2)可提供一定程度的逻辑数据独立性 (3)对重要数据提供安全保护5.1.2视图的作用P892SQL语言用CREATEVIEW命令建立视图,其一般格式为:CREATEVIEW<视图名>[(<列名>[,<列名>]…)]AS<子查询>[WITHCHECKOPTION]其中,子查询可

2、以是任意复杂的SELECT语句,但通常不允许含有ORDERBY子句和DISTINCT短语。WITHCHECKOPTION表示对视图进行UPDATE,INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。5.2创建视图P905.2.1使用SQL语句创建视图3组成视图的属性列名或者全部省略或者全部指定,如果省略了视图的各个属性列名,则隐含该视图由子查询中SELECT子句目标列中的诸字段组成。但在下列三种情况下必须明确指定组成视图的所有列名:某个目标列不是单纯的属性名,而是聚集函数

3、或列表达式;多表连接时选出了几个同名列作为视图的字段;需要在视图中为某个列启用新的名字。4例1:建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。CREATEVIEWIS_S1ASSELECTSNO,SNAME,AGEFROMSWHERESDEPT=’IS’WITHCHECKOPTIONGO加上了WITHCHECKOPTION子句,以后对该视图进行插入、修改和删除操作时,RDBMS会自动加上SDEPT=’IS’的条件。5若一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了主码

4、,我们称这类视图为行列子集视图。视图不仅可以建立在单个基本表上,也可以建立在多个基本表上。6例2:建立信息系选修了1号课程的学生的视图。CREATEVIEWIS_S2(SNO,SNAME,GRADE)ASSELECTS.SNO,SNAME,GRADEFROMSJOINSCONS.SNO=SC.SNOWHERESDEPT=’IS’ANDSC.CNO=’1’GO由于视图IS_S2的属性列中包含了S表与SC表的同名列SNO,所以必须在视图名后面明确说明视图的各个属性列名。7视图不仅可以建立在一个或多个基本表上,也可以建立在一个或多个已定

5、义好的视图上,或建立在基本表与视图上。P91例5.28操作步骤: (1)打开MicrosoftSQLServerManagementStudio窗口,展开相关数据库,右击“视图”节点,选择单击“新建视图”命令。 (2)在“添加表”对话框中,会出现“表”、“视图”等选项,选择“表”选项卡,再选择相关的表。 (3)单击“添加”按键,完成后关闭“添加表”。P92图5.2(4)在视图窗口的“关系图”窗格中显示上面指定的表的全部信息,选择需要的列,对应在“条件”窗格中列出了选择的列,并显示相关表的连接语句。P93图5.3(5)单击“保存”按

6、钮,在弹出的“选择名称”对话框中输入视图的名称,并单击“确定”按钮。 例3:建立视图界面操作5.2.2使用图形化界面创建视图P919视图定义后,就可以像对待基本表一样对视图进行查询(SELECT)操作。 先进行有效性检查,查看用到的视图和表是否存在。检查有效后,取出视图的定义,把定义中的子查询和当前要执行的查询结合起来,转化成等价的对基本表的查询,然后再执行查询操作。5.3查询视图P9310例4:查询信息学生年龄大于19的学生信息。USEJWGL SELECT* FROMIS_S1 WHEREAGE>19 GO11但对视图中的元

7、组进行更新操作就不一样了。这是由于视图是不实际存储数据的虚表,对视图的更新最终要转换为对基本表的更新。所以对视图的更新操作是有限制的,并不是所有的视图都能进行更新。5.4更新视图P9412对于视图元组的更新操作(INSERT、DELETE、UPDATA),有以下限制:(1)如果一个视图是从多个基本表使用联接操作导出的,那么不允许对这个视图执行更新操作。(2)如果在导出视图的过程中,使用了分组和聚集函数操作,也不允许对这个视图执行更新操作。(3)如果在视图定义中使用了DISTINCT短语或GROUPBY子句,则不允许对该视图进行更新

8、操作。(4)如果视图列的值为表达式或常数,则不允许对该视图进行更新操作。行列子集视图是可以执行更新操作的。在SQL2中,允许更新的视图在定义时,必须加上“WITHCHECKOPTION”短语。131、插入数据(INSERT语句)例5:向信息系学生视

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。