5.1 视图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并不执行其中的SELECT语句 在对视图查询时,按视图的定义从基本表中将数据查出。
1.2 定义视图
建立视图
[例1] 建立1系学生的视图。
CREATE VIEW IS_Student AS SELECT Sno,Sname,Sbirthday FROM Student WHERE Dno= 1;
cascaded检查视图
检查条件:c<60 a e c h f
ab cde fgh
基本表1 基本表2 基本表3
1.2 定义视图
建立视图
组成视图的属性列名:全部省略或全部指定 子查询不允许含有ORDER BY子句和DISTINCT短语 RDBMS执行CREATE VIEW语句时只是把视图定义存入数据字典,
1.2 定义视图
建立视图
基于多个基表的视图
➢[例4] 建立1系选修了202001号课程的学生视图。
CREATE VIEW IS_S1(Sno,Sname,Grade)
AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Dno= 1 AND
Student.Sno=SC.Sno AND SC.Cno= ‘202001';
1.2 定义视图
建立视图
基于视图的视图
➢[例5] 建立1系选修了202001号课程且成绩 在70分以上的学生的视图。
CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade>=70;
1.2 定义视图
建立视图
带WITH CHECK OPTION选项时对视图的更新操作
➢插入操作,插入的记录在刷新视图后必须可以看到; ➢修改操作,修改完的结果也必须能通过该视图看到; ➢如果删除,当然只能删除视图里有显示的记录。
1.2 定义视图
建立视图
例如:
insert into IS_Student values('181110200817','袁铭骏’,2001-0412)
视图分为普通视图与检查视图。
检查视图分为local检查视图与cascade检查视图。 cascade(级联视图,在视图的基础上再次创建另一个视图)
通过检查视图更新基表数据时,只有满足检查条件的更新 语句才能成功执行。
创建检查视图的语法格式如下。 create view 视图名 [ (视图字段列表) ] as select语句 with [ local | cascaded ] check option
➢[例7] 将学生的学号及他的平均成绩定义为 一个视图。
CREATE VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;
1.2 定义视图
应用程序 从视图中读取数据 通过视图中修改数据
视图 a e c h f
ab Fra Baidu bibliotekde fgh
基本表1 基本表2
数据库
基本表3
1.1 视图的概念
视图的特点
虚表,是从一个或几个基本表(或视图)导出的表 视图中保存的仅仅是一条select语句,视图中的源数据都来自于数
据库表,数据库表称为基本表或者基表,视图称为虚表。 只存放视图的定义,不存放视图对应的数据 基表中的数据发生变化,从视图中查询出的数据也随之改变
1.2 定义视图
建立视图
[例2]建立1系学生的视图,并要求进行修改和插入操作时仍需保 证该视图只有1系的学生
CREATE VIEW IS_Student AS SELECT Sno,Sname,Sbirthday FROM Student WHERE Dno = 1 WITH CHECK OPTION;
出错!
由于行通过视图进行添加或更新,当其不再符合定义视图的查询 的条件时,它们即从视图范围中消失。
1.2 定义视图
又如:
CREATE VIEW IS_StudentVIEW AS SELECT Sno,Sname,Sage,Dno FROM Student
WHERE Dno = ‘IS' WITH CHECK OPTION;
update IS_StudentVIEW set Dno=‘CS' where sno=‘2002101‘
出错!
1.2 定义视图
建立视图
[例3] 建立软件技术系学生的视图。
CREATE VIEW CompStud AS SELECT Sno,Sname,Ssex,Sbirthday,Dno FROM Student WHERE Dno in ( Select Dno From Dept Where Dname = ‘软件技术’ ) ;
local 检查 视图与 cascade检 查视图
操作1: 通过该视图执行update 操作,将c赋值为70。 将无法完成此操作
操作2: 通过该视图执行update操 作,将c赋值为70。 此操作可以成功执行
cascaded检查视图
local检查视图
检查条件:c>50 a e c c h f 检查条件:c>50
第五章:安全性管理
5.1 视图
授课教师: 学院:
主要内容
定义视图 查询视图 修改视图 更新视图 视图的作用
01
定义视图
1.1 视图的概念
视图与表有很多相似 的地方,视图也是由 若干个字段以及若干 条记录构成,视图也 可以作为select语句的 数据源。甚至在某些 特定条件下,可以通 过视图对表进行更新 操作。
1.1 视图的概念
基于视图的操作
查询 删除 受限更新 定义基于该视图的新视图
1.2 定义视图
建立视图
语句格式
CREATE VIEW
<视图名> [(<列名> [,<列名>]…)] AS <子查询> [WITH [CASCADED| LOCAL] CHECK OPTION];
1.2 定义视图
1.2 定义视图
建立视图
带表达式的视图
➢[例6] 定义一个反映学生年龄的视图。
CREATE VIEW BT_S(Sno,Sname,Sage) AS SELECT Sno,Sname,YEAR(NOW())-YEAR(Sbirthday) FROM Student;
1.2 定义视图
建立视图
分组视图
1.2 定义视图
建立视图
[例1] 建立1系学生的视图。
CREATE VIEW IS_Student AS SELECT Sno,Sname,Sbirthday FROM Student WHERE Dno= 1;
cascaded检查视图
检查条件:c<60 a e c h f
ab cde fgh
基本表1 基本表2 基本表3
1.2 定义视图
建立视图
组成视图的属性列名:全部省略或全部指定 子查询不允许含有ORDER BY子句和DISTINCT短语 RDBMS执行CREATE VIEW语句时只是把视图定义存入数据字典,
1.2 定义视图
建立视图
基于多个基表的视图
➢[例4] 建立1系选修了202001号课程的学生视图。
CREATE VIEW IS_S1(Sno,Sname,Grade)
AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Dno= 1 AND
Student.Sno=SC.Sno AND SC.Cno= ‘202001';
1.2 定义视图
建立视图
基于视图的视图
➢[例5] 建立1系选修了202001号课程且成绩 在70分以上的学生的视图。
CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade>=70;
1.2 定义视图
建立视图
带WITH CHECK OPTION选项时对视图的更新操作
➢插入操作,插入的记录在刷新视图后必须可以看到; ➢修改操作,修改完的结果也必须能通过该视图看到; ➢如果删除,当然只能删除视图里有显示的记录。
1.2 定义视图
建立视图
例如:
insert into IS_Student values('181110200817','袁铭骏’,2001-0412)
视图分为普通视图与检查视图。
检查视图分为local检查视图与cascade检查视图。 cascade(级联视图,在视图的基础上再次创建另一个视图)
通过检查视图更新基表数据时,只有满足检查条件的更新 语句才能成功执行。
创建检查视图的语法格式如下。 create view 视图名 [ (视图字段列表) ] as select语句 with [ local | cascaded ] check option
➢[例7] 将学生的学号及他的平均成绩定义为 一个视图。
CREATE VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;
1.2 定义视图
应用程序 从视图中读取数据 通过视图中修改数据
视图 a e c h f
ab Fra Baidu bibliotekde fgh
基本表1 基本表2
数据库
基本表3
1.1 视图的概念
视图的特点
虚表,是从一个或几个基本表(或视图)导出的表 视图中保存的仅仅是一条select语句,视图中的源数据都来自于数
据库表,数据库表称为基本表或者基表,视图称为虚表。 只存放视图的定义,不存放视图对应的数据 基表中的数据发生变化,从视图中查询出的数据也随之改变
1.2 定义视图
建立视图
[例2]建立1系学生的视图,并要求进行修改和插入操作时仍需保 证该视图只有1系的学生
CREATE VIEW IS_Student AS SELECT Sno,Sname,Sbirthday FROM Student WHERE Dno = 1 WITH CHECK OPTION;
出错!
由于行通过视图进行添加或更新,当其不再符合定义视图的查询 的条件时,它们即从视图范围中消失。
1.2 定义视图
又如:
CREATE VIEW IS_StudentVIEW AS SELECT Sno,Sname,Sage,Dno FROM Student
WHERE Dno = ‘IS' WITH CHECK OPTION;
update IS_StudentVIEW set Dno=‘CS' where sno=‘2002101‘
出错!
1.2 定义视图
建立视图
[例3] 建立软件技术系学生的视图。
CREATE VIEW CompStud AS SELECT Sno,Sname,Ssex,Sbirthday,Dno FROM Student WHERE Dno in ( Select Dno From Dept Where Dname = ‘软件技术’ ) ;
local 检查 视图与 cascade检 查视图
操作1: 通过该视图执行update 操作,将c赋值为70。 将无法完成此操作
操作2: 通过该视图执行update操 作,将c赋值为70。 此操作可以成功执行
cascaded检查视图
local检查视图
检查条件:c>50 a e c c h f 检查条件:c>50
第五章:安全性管理
5.1 视图
授课教师: 学院:
主要内容
定义视图 查询视图 修改视图 更新视图 视图的作用
01
定义视图
1.1 视图的概念
视图与表有很多相似 的地方,视图也是由 若干个字段以及若干 条记录构成,视图也 可以作为select语句的 数据源。甚至在某些 特定条件下,可以通 过视图对表进行更新 操作。
1.1 视图的概念
基于视图的操作
查询 删除 受限更新 定义基于该视图的新视图
1.2 定义视图
建立视图
语句格式
CREATE VIEW
<视图名> [(<列名> [,<列名>]…)] AS <子查询> [WITH [CASCADED| LOCAL] CHECK OPTION];
1.2 定义视图
1.2 定义视图
建立视图
带表达式的视图
➢[例6] 定义一个反映学生年龄的视图。
CREATE VIEW BT_S(Sno,Sname,Sage) AS SELECT Sno,Sname,YEAR(NOW())-YEAR(Sbirthday) FROM Student;
1.2 定义视图
建立视图
分组视图