《数据库系统概论》 -- 3.2. 视图

概念

视图是从一个或几个基本表(或视图)导出的表

视图是一个虚表

数据库只存放视图的定义,不存放视图对应的数据

视图一经定义,就可以被查询,删除,但是更新操作有一定限制

定义视图

格式         CREATE VIEW <视图名> [(<列名>[,<列名>...])]

AS <子查询>

[WITH CHECK OPTION];

说明         子查询可以是任意的SELECT语句,是否可以包含ORDER BY子句和DISTINCT短语,取决于具体系统;

视图的定义可以基于另一个视图

后加WITH CHECK OPTION短语约束视图进行更新、插入、删除数据时,仍应该要满足子查询中的条件

注意         列名要么全部指定,要么全不指定,不指定时,使用子查询中列名

出现下面情况,必须指定:

某个目标列为聚集函数或列表达式

多表连接时,有同名列

需要为某个列命名

分类         行列子集视图:一个视图是从某单个基本表导出的,只是去掉了某些行,则该视图称为行列子集视图

带表达式的视图:一个视图中的某属性是基本表的某属性经过算术/逻辑/比较运算得到的,则该视图称为带表达式的视图

分组视图:带有聚集函数和GROUP BY子句的查询来定义视图

举例         建立信息系学生的视图

CREATE VIEW IS_Student

AS

SELECT Sno,Sname,Sage FROM Student WHERE Sdept=‘IS‘;

建立信息系学生的视图,并约束在进行修改和插入操作时,该视图只有信息系学生(行列子集视图)

CREATE VIEW IS_Student_View

AS

SELECT Sno,Sname,Sage FROM Student Where Sdept=‘IS‘

WITH CHECK OPTION;

建立信息系选修了1好课程的学生的视图(包括学号,姓名,成绩)

CRETAE VIEW IS_S1 (Sno,Sname,Grade)

AS

SELECT SC.Sno,Sname,Grade

FROM Student,SC

WHERE Student.Sno=SC.Sno AND Sdept=‘IS‘ AND SC.Cno=‘1‘;

建立信息系选修了1号课程且成绩在90分以上的学生的视图

CREATE VIEW IS_S2

AS

SELECT Sno,Sname,Grade

FROM IS_S1

WHERE Grade>=90;

定义一个反映学生出生年份的视图(带表达式的视图)

CREATE VIEW BT_S(Sno,Sname,Sbirth)

AS

SELECT Sno,Sname,2017-Sage

FROM Student;

将学生的学号和平均成绩定义为一个视图(分组视图)

CREATE VIEW S_G(Sno,Gavg)

AS

SELECT Sno,AVG(Grade)

FROM SC

GROUP BY Sno;

将Student表中的所有女生定义为一个视图

CREATE VIEW G_Student

AS

SELECT *

FROM Student

WHERE Ssex=‘女‘;

删除视图

格式         DROP VIEW <视图名> [CASCADE];

说明         视图删除后,视图定义将会从数据字典中删除

如果在该视图的基础上还导出了其他视图,则使用CASCADE级联删除即可,否则拒绝执行

举例         DROP VIEW BT_S;  /*成功执行*/

DROP VIEW IS_S1;  /*拒绝执行*/

DROP VIEW IS_SI CASCADE;  /*成功执行,同时删除IS_S2*/

查询视图

概念         视图消解:在执行对视图的查询时,首先进行有效性检查,检查查询中涉及的表、视图是否存在,如果存在,则从数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换为对基本表的查询,在后在执行修正后的查询

注意         WHERE子句中聚集函数是不能做条件表达式的,但是大多数RDBS对查询都有优化,都可以进行正确转换

更新视图

概念         更新视图,是指通过视图来插入、删除、修改

注意         视图是不存储实际数据的虚表,所以对视图的更新会经过视图消解最终转换为对基本表的更新

并不是所有视图都可以更新,比如平均成绩视图

各个RDBMS的视图更新操作需参考各RDBMS的具体实现

举例         将信息系学生试图IS_Student中学号为201215122的学生姓名改为刘辰--视图之UPDATE

UPDATE IS_Student

SET Sname=‘刘辰‘

WHERE Sno=‘201215122‘;

向信息系学生视图IS_Student中插入一个新的学生记录(‘201215129‘,‘赵新‘,20)--视图之INSERT

INSERT INTO IS_Student

VALUES (‘201215129‘,‘赵新‘,20);

删除信息系学生视图IS_Student中的学号为201215129的学生记录--视图之DELETE

DELETE FROM IS_Student

WHERE Sno=‘201215129‘;

视图的作用

简化用户操作

以多种角度看待同一数据

对重构数据库(对数据库进行新增基本表,或修改基本表)提供了一定的逻辑独立性(不影响用户的应用程序)

对机密数据提供安全保护(如全校所有学生的信息都在一个表里,但是给每个学院创建各自的视图,则每个学员只能看到自己学院的数据)

适当利用视图,查询语句更清晰

时间: 2024-11-04 11:18:53

《数据库系统概论》 -- 3.2. 视图的相关文章

数据库系统概论(第四版)习题解答

数据库系统概论(第四版) 第1章 绪论 1 .试述数据.数据库.数据库系统.数据库管理系统的概念. 答:( l )数据( Data ) :描述事物的符号记录称为数据.数据的种类有数字.文字.图形.图像.声音.正文等.数据与其语义是不可分的.解析在现代计算机系统中数据的概念是广义的.早期的计算机系统主要用于科学计算,处理的数据是整数.实数.浮点数等传统数学中的数据.现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂.数据与其语义是不可分的. 500 这个数字可以表示一件物品的价格

数据库系统概论学习笔记-第一章绪论

数据库系统概论-第一章绪论 写在前面:寒假来临,除却走亲戚和同学聚餐,王者荣耀等游戏上分花销一点时间之外,自认为要花一点时间学习数据库和Android,以此来为下学期和共建项目打下一丢丢的基础.为了鞭策自己,定了一个小目标( 一个亿),每个两至三天我会发表一篇数据库或Android学习笔记.还是那句话你的才华撑不住你的野心时,那就静下来学习吧 . 数据库系统概述 数据库常用的术语和基本概念 数据库基本概念 数据(Data) 数据是数据库中存储的基本对象,可以对数据做如下定义:描述事物的符号记录称

《数据库系统概论(第5版)》课后习答案 王珊、萨师煊编著版 课后题解析 高等教育出版社出版 答

<数据库系统概论(第5版)>课后习答案 王珊.萨师煊编著版 课后题解析 高等教育出版社出版 答案与解析 <数据库系统概论(第5版)> 王珊.萨师煊编著版 第二篇 第1章 课后答案与解析 完整答案在页面最下方 前言第一篇 基 础 篇 课后习题答案与解析第1章 绪论 课后习题答案与解析1.1 数据库系统概述1.2 数据模型1.3 数据库系统的结构1.4 数据库系统的组成1.5 小结习题本章参考文献第2章 关系数据库 课后习题答案与解析2.1 关系数据结构及形式化定义2.2 关系操作2.

《数据库系统概论》--目录

<数据库系统概论>  第5版 <数据库系统概论>--1.绪论 <数据库系统概论>--2.关系操作 <数据库系统概论> -- 3.1SQL概论和DDL

数据库系统概论学习笔记(一)

时间:第一周     年级:大三    学生:南通大学网络工程何季生 2017.9.14 一.绪论 1.1数据库系统概述 1.数据 描述事物的符号记录称为数据.数据的含义称为数据的语义,数据与其语义是不可分的.例如93是一个数据,他可以是一位同学的成绩,也可以是他的体重,还可能是一个班的人数. 2.数据库 数据库顾名思义就是存放数据的仓库.严格来讲,数据是长期储存在计算机内,有组织的,可共享的大量数据的集合.数据库中的数据按一定的数据模型组织.描述和储存,具有较小的亢余度(redundancy)

《数据库系统概论》--1.绪论

1. 绪论 1.1 数据库的四个基本概念 数据 描述事物的符号记录称为数据. 数据的含义称为数据的语义,数据与其语义是密不可分的.如数据93的语义可以是成绩.人数 数据库 是指长期的.有组织的.可共享的大量数据的集合. 具有较小的冗余度.较高的数据独立性和易扩展性 数据库管理系统 是一个计算机的基础软件. 功能: 数据定义功能 数据组织.存储和管理 数据操纵功能 数据库的事务管理和运行管理 数据库的建立和维护功能 其他功能(如数据库系统与网络中其他软件系统的通讯功能) 数据库系统 由数据库.数据

数据库系统概论 复习笔记。

大学课本复习笔记,知识点总结. 2012-08-15 数据模型中的 型,Type, 学号,姓名.... 值,Value, 0001, Ender..... 数据库系统的三级模式,两级映射, 外模式,External Schema/Sub Schema, 是用户能看得到的直接使用的.一个数据库有多个外模式,应用于用户的不同需求.但每个应用程序只能使用一个外模式.保证安全.每个用户只能访问对应的外模式. 模式,Schema, 是数据库中全体数据的逻辑结构和特征的描述,只涉及 型Type的描述.模式的

【数据库系统概论】绪论----数据库系统概论(三)

1.2.7 关系模型 关系模型是目前最重要的一种数据模型. 一.关系模型的数据结构 关系模型是由一组关系组成的,每个关系的数据结构是一张规范化的二维表. 关系:一个关系通常对应一张表 元组:表中一行即为一个元组 属性:一列 码:某个属性组可以唯一确定一个元组 域:属性的取值范围 分量:元组中的一个属性值 关系模式:用表模型来描述:关系名(属性1,属性2,...属性n) 关系模型要求必须是规范的,即要求关系满足一定的规范要求(范式要求). 二.关系数据模型的操纵与完整性约束 操纵主要有:插入.删除

《数据库系统概论》相关名词解释

数据:用于描述事物的符号记录,数据与其语义是不可分的 数据库:是长期存储在计算机内的.有组织的.可共享的数据集合 数据库系统:是计算机系统引入数据库后的一个系统,由数据库.数据库管理系统.应用系统.管理员.用户[五个部分]组成.数据库系统的核心是数据库管理系统,基础是数据模型.数据库具有数据结构化.共享性高.冗余度低.易扩充的特点 数据库管理系统:是位于用户与操作系统之间的一层系统,用于高效地定义.存取.运行管理.建立维护数据.常见的有Oracle公司的mysql,Microsoft公司的SQL