欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

11.1视图概述

程序员文章站 2022-07-15 15:38:25
...

内容来自《MySQL从入门到精通》清华大学出版社一书的内容,随看书随打打笔记,会不断补充 

视图是从一个多多个表中导出的,视图的行为与表非常相似,但视图是一个虚拟表。在视图中用户可以使用SELECT语句查询数据,以及使用INSERT,UPDATE和DELETE修改记录。

11.1.1视图的含义

视图是一个虚拟的表,是从数据库中一个或多个表中导出的表。视图还可以从已经存在的视图的基础上定义。

视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询,修改和删除。当对通过视图看到的数据进行修改时,响应的基本表的数据也要发生变化;同时,若基本表的数据发生变化,则这种变化也可以自动地反应到视图中。

下面有个student表和stu_info表,在student表中包含了学生的id号和姓名,stu_info表中包含了学生的id号,班级和家庭住址,而现在公布分班信息,只需要id号,姓名和班级。这该如何解决?后面的内容将其解决

CREATE TABLE student
(
  s_id  INT,
  name  VARCHAR(40)
);

CREATE TABLE stu_info
(
  s_id   INT,
  glass  VARCHAR(40),
  addr   VARCHAR(90)
);

通过DESC命令可以查看表的设计,可以获得字段,字段的定义,是否为主键,是否为空,默认值和扩展信息。

视图提供了一个很好的解决方法,创建视图的信息来自表的部分信息,只取需要的信息,这样既能满足要求也不破坏表原来的结构。

11.1.1视图的作用

与直接从数据表中读取相比,有如下优点:

1.简单化

看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些经常被使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

2.安全性

通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定列上。通过视图,用户可以被限制在数据的不同子集上:

(1)使用权限可被限制在基表的行的子集上

(2)使用权限可被限制在基表的列的子集上

(3)使用权限可被限制在基表的行和列的子集上

(4)使用权限可被限制在多个基表的连接所限定的行上

(5)使用权限可被限制在基表中的数据的统计汇总上

(6)使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上

3.逻辑数据独立性

视图可帮助用户屏蔽真实表结构变化带来的影响。

相关标签: 什么是视图