1、 )1数据库系统概论An Introduction to Database System第三章第三章 关系数据库标准语言关系数据库标准语言 SQL( 5))2第三章 关系数据库标准语言 SQL3.1 SQL概述3.2 学生 -课程数据库3.3 数据定义3.4 查询3.5 数据更新3.6 视图)33.6 视图n视图的特点视图的特点u提供给用户以多种角度观察数据库中数据的重要机制。u虚表 ,是从一个或几个基本表 (或视图 )导出的表。u只存放视图的定义,不会出现数据冗余。u基表的数据发生变化,从视图中查询出的数据也随之改变 .)43.6 视图基于视图的操作基于视图的操作u 查询u 删除u 更新 (
2、受限 )u 定义基于该视图的新视图)53.6 视图 3.6.1 定义视图3.6.2 查询视图3.6.3 更新视图3.6.4 视图的作用)61. 建立视图建立视图u语句格式:语句格式:CREATE VIEW ( ,)AS WITH CHECK OPTION;u功能:功能:4 DBMS存放视图定义,不执行其中的子查询4 查询视图时,按其定义从基本表中将数据查出 .3.6.1 定义视图)73.6.1 定义视图组成视图的属性列:或全部省略或全部指定u省略省略 : 由子查询中 SELECT目标列中的诸字段组成u以下情况以下情况 必须明确指定必须明确指定 视图的所有列名视图的所有列名(1)某个目标列是 集
3、函数集函数 或 列表达式列表达式(2)多表连接时选出了 同名列同名列 作为视图的字段(3)需在视图中为某列 启用新的更合适启用新的更合适 的名字1. 建立视图(续)建立视图(续)u说明:说明:)8n 常见的视图形式常见的视图形式l 行列子集视图行列子集视图l WITH CHECK OPTION的视图的视图l 基于多个基表的视图基于多个基表的视图l 基于视图的视图基于视图的视图l 带表达式的视图带表达式的视图l 分组视图分组视图l 一类不易扩充的视图一类不易扩充的视图3.6.1 定义视图)9(1)行列子集视图行列子集视图从 单个基本表单个基本表 导出的视图,只是去掉了基本表的某些行和列,但 保留
4、码保留码 。 3.6.1 定义视图例 1 建立信息系学生的视图。CREATE VIEW IS_StuAS SELECT Sno, Sname, SageFROM Student WHERE Sdept= IS*)10(2)WITH CHECK OPTION视图视图 :表示对视图进行增、删、改操作时, 不得破坏视不得破坏视图定义图定义 中的谓词条件 (即子查询中的条件表达式 )。3.6.1 定义视图例 2建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生。CREATE VIEW IS_StuAS SELECT * FROM Student WHERE Sdept= IS WITH CHECK OPTION;