MySQL视图 VIEW

视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,不同于基本表,视图是一个虚表。在数据库中,存放的只是视图的定义而已,而不存放数据,这些数据仍然存放在原来的基本表结构中。只有在使用视图的时候才会执行视图的定义,从基本表中查询数据。

视图和普通表的区别

视图的优势

创建视图

CREATE [OR REPALCE] [ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}] VIEW 视图名称[(列名称)] AS 
SELECT 列名称
FROM 表名称
WHERE 筛选条件
[WITH [CASCADED|LOCAL] CHECK OPTION];

 CREATE OR REPLACE  # 表示创建新视图,如果视图存在就替换

ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}  # 表示视图选择的算法,默认是UNDEFINED,即MySQL会自动选择要使用的算法;

WITH [CASCADED|LOCAL] CHECK OPTION  # 表示视图在更新时保证在视图的权限范围之内。默认是CASCADED,即更新视图时要满足视图和表的相关条件;LOCAL表示更新视图时只要满足该视图定义的一个条件即可。

如果创建视图时不明确指定视图的列名,则列名就和定义视图的select字句中的列名完全相同;如果显示的指定视图的列名,就按照指定的列名,注意视图后面的列名的数量必须和select字句中的列名的数量相同。

简单的基本格式:

CREATE VIEW 视图名称(列名称) AS
SELCET 列名称
FROM 表名称
WHERE 筛选条件
WITH CHECK OPTION;

视图一旦创建完成,就可以像一个普通表那样使用,视图主要用来查询。

查看视图

SHOW CREATE VIEW 视图名称\G;

或者查看infromation_schema数据库中的views表,该表记录了有关视图的信息。

SELECT *
FROM information_schema.views
WHERE TABLE_NAME='视图名称'\G;

更改视图

方式一 使用  CREATE OR REPALCE VIEW  语句(见创建视图部分)

方式二 使用 ALTER 语句修改视图

方式三 使用DML操作更新视图(Data Manipulation Language 数据操纵语言)

因为视图本身没有数据,因此对视图进行的DML操作最终都体现在基表中

删除视图

删除视图是指删除数据库中已经存在的视图,删除视图时,只能删除视图的定义,不会删除数据,及不会删除基表。

DROP VIEW [IF EXISTS] 视图名称;

 

posted on 2018-09-27 00:46  0820LL  阅读(106)  评论(0编辑  收藏  举报

导航