1.什么是视图

是一种虚拟的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的

1.1视图的好处

简单
安全
数据独立

2.视图操作

2.1创建或者修改视图

创建视图需要有CREATE VIEW 的权限。如果用RATATE OR REPLACE 或者ALTER修改视图,那么还需要该视图的DROP权限
创建语句

  1. CREATE [OR REPLACE] [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]
  2. VIEW view_name[(column_list)]
  3. AS select_statement
  4. [WITH[CASCDED|LOCAL]CHECK OPTION]

select_statement:查询语句
修改语句

ALTER[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]
    VIEW view_name[{column_list}]
  AS select_statement
  [WITH[CASCDED|LOCAL]CHECK OPTION]

[WITH[CASCDED|LOCAL]CHECK OPTION] :决定了是否允许更新数据使记录不在满足视图的条件
LOCAL 只要满足本视图条件的条件就可以更新
CASCADED 则必须满足所有针对该视图的所有视图的条件才能更新(默认)
以下视图是不能更新的:

  1. 包含以下关键字SQL语句:聚合函数
  2. 常量视图
  3. select中包含子查询
  4. JION
  5. from一个不能更新的视图
  6. where字句的子查询引用FROM字句中的表

    2.2删除视图

    需要有该视图的DROP权限
DROP VIEW [IF EXISTS]view_name[,view_name]...[RESTRICT|CASCADE]

2.3查看视图

SHOW TABLES:不仅显示表的名字,同时也可以显示视图的信息

SHOW TABLE STATUS[FROM db_name][LIKE 'patten']

显示表的信息,显示视图的信息
image.png

SHOW CREATE VIEW:查询某个视图的定义

通过查看系统表Information_schema.views也可以查看视图相关信息