【MySQL】视图

目录

11.1.1  视图的含义

11.1.2  视图的作用

11.2.1  创建视图的语法形式

11.2.3  在多表上创建视图

11.4  修改视图属性

11.5  更新视图内容

11.6  删除视图


11.1.1  视图的含义

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


11.1.2  视图的作用

● 简单性:将经常使用到的查询定义为表,简单;

● 安全性:只能修改和查询所看见的数据;

● 逻辑数据独立性:拜托真实表结果的变化带来的影响。

 

11.2.1  创建视图的语法形式

基于已存在的表和查询语句;

创建视图使用CREATE VIEW语句,基本语法格式如下:

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

       VIEW view_name [(column_list)]

       AS SELECT_statement

       [WITH [CASCADED | LOCAL] CHECK OPTION]

视图属于数据库,默认在当前数据库创建新视图,若想在其他数据库创建,则将名称改为db_name.view_name.
11.2.2  在单表上创建视图

MySQL可以在单个数据表上创建视图。

 


11.2.3  在多表上创建视图

MySQL中也可以在两个或者两个以上的表上创建视图,可以使用CREATE VIEW语句实现。

 

11.3.1  DESCRIBE/DESC 视图名 语句查看视图基本信息


11.3.2  SHOW TABLE STATUS语句查看视图基本信息

SHOW TABLE STATUS LIKE '视图名';

 
11.3.3  使用SHOW CREATE VIEW语句可以查看视图详细定义。

SHOW CREATE VIEW 视图名;


11.3.4  在views表中查看视图详细信息

在MySQL中,information_schema数据库下的views表中存储了所有视图的定义。通过对views表的查询,可以查看数据库中所有的视图的详细信息。

SELECT * FROM information_schema.views;

11.4  修改视图属性

11.4.1  CREATE OR REPLACE VIEW语句修改视图
11.4.2  ALTER语句修改视图

ALTER语句是MySQL提供的另外一种修改视图的方法。

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

     VIEW view_name [(column_list)]

     AS SELECT_statement

     [WITH [CASCADED | LOCAL] CHECK OPTION]

 

11.5  更新视图内容

更新视图是指通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟表,其中没有数据。通过视图更新的时候都是转到基本表进行更新的,如果对视图增加或者删除记录,实际上是对其基本表增加或者删除记录。

Update,insert, delete。

Update view_name SET var_name= new_value;

Insert into 表名/视图名 values (键值对);

Delete from 表名/视图名 条件;

 

Ps:当视图中包含有如下内容时,视图的更新操作将不能被执行:

(4)视图中不包含基表中被定义为非空的列。

(1)在定义视图的SELECT语句后的字段列表中使用了数学表达式。

(2)E定义视图的SELECT语句后的字段列表中使用聚合函数。

(3)在定义视图的SELECT语句中使用了DISTINCT, UNION, TOP, GROUP BY或HAVING子句。

 

11.6  删除视图

当视图不再需要时,可以将其删除,删除一个或多个视图可以使用DROP VIEW语句,删除视图必须拥有DROP权限。

DROP VIEW [IF EXISTS]

     view_name [, view_name] ...

     [RESTRICT | CASCADE] 限制和条件

 

猜你喜欢

转载自blog.csdn.net/dreamengsoul/article/details/83110886