常见的数据库对象

MySQL视图详接_数据库架构

视图概述 

MySQL视图详接_数据库开发_02

为什么使用视图? 

视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。刚才讲的只是视图的一个使用场景,实际上视图还有很多作用。最后,我们总结视图的优点。

视图的理解

视图是一种虚拟表,本身是不具有数据的,占用很少的内存空间,它是 SQL 中的一个重要概念。视图建立在已有表的基础上, 视图赖以建立的这些表称为基表

MySQL视图详接_数据库开发_03

视图的创建和删除只影响视图本身,不影响对应的基表。但是当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化,反之亦然。 

向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句在数据库中,视图不会保存数据,数据真正保存在数据表中。

当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化;反之亦然。视图,是向用户提供基表数据的另一种表现形式。

通常情况下,小型项目的数据库可以不使用视图,但是在大型项目中,以及数据表比较复杂的情况下,视图的价值就凸显出来了,它可以帮助我们把经常查询的结果集放到虚拟表中,提升使用效率。理解和使用起来都非常方便。

创建视图

MySQL视图详接_sql_04

创建单表视图 

MySQL视图详接_数据仓库_05

MySQL视图详接_数据库开发_06

 

MySQL视图详接_数据仓库_07

 

 创建多表联合视图

MySQL视图详接_数据库架构_08

 利用视图对数据进行格式化

MySQL视图详接_数据库开发_09

 基于视图创建视图 

MySQL视图详接_java_10

 更新视图的数据

 一般情况

MySQL支持使用INSERT、UPDATE和DELETE语句对视图中的数据进行插入、更新和删除操作。当视图中的数据发生变化时,数据表中的数据也会发生变化,反之亦然。

不可更新的视图

MySQL视图详接_数据仓库_11

 

 

MySQL视图详接_sql_12

修改、删除视图 

修改视图

MySQL视图详接_sql_13

 删除视图

删除视图只是删除视图的定义,并不会删除基表的数据。

删除视图的语法是:

 

MySQL视图详接_数据库开发_14

MySQL视图详接_数据库架构_15

 

视图优点 

MySQL视图详接_数据仓库_16

MySQL视图详接_数据仓库_17

 

MySQL视图详接_数据库开发_18