1、视图概述
视图是从一个或多个表中导出来的表,它是一种虚拟存在的表,并且表的结构和数据都依赖于基本表。通过视图不仅可以看到存放在基本表中的数据,并且还可以像操作基本表一样,对视图中存放的数据进行查询、修改和删除。
视图的优点:简化查询语句、安全性、逻辑数据独立性。
2、视图管理
2.1 创建视图的语法格式
使用 create view 语句,其基本语法格式如下:
create [or replace] [algorithm = {undefined | merge | temptable}]
view view_name[(column_list)]
as select_statement
[with [cascaded | local] check option];
(1)create:表示创建视图的关键字,上述语句能创建新的视图。
(2)or replace:如果给定了此子句,表示该语句能够替换已有的视图。
(3)algorithm:可选,表示视图选择的算法。
(4)undefined:表示 MySQL 将自动选择所要使用的算法。
(5)merge:表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。
(6)temptable:表示将视图的结果存入临时表,然后使用临时表执行语句。
(7) view_name:表示要创建的视图名称。
(8)column_list:可选,表示属性清单,指定了视图中各个属性的名,默认情况下,与 select 语句中查询的属性相同。
(9)as:表示指定视图要执行的操作。
(10)select_statement:是一个完整的查询语句,表示从某个表或视图中查出某些满足条件的记录,将这些记录导入视图中。
(11)with check option:可选,表示创建视图时要保证在该视图的权限范围之内。
(12)cascaded:可选,表示创建视图时,需要满足跟该视图有关的所有相关视图和表的条件,该参数为默认值。
(13)local:可选,表示创建视图时,只要满足该视图本身定义的条件即可。
2、查看视图
查看视图是指查看数据库中已存在的视图的定义,查看视图必须要有 show view 的权限。
(1)describe 视图名; 或简写为 desc 视图名;
可以查看视图的字段信息,其中包含字段名、字段类型等信息。
(2)show table status like '视图名'\G
可以查看视图的基本信息。
(3)show create view 视图名;
可以查看创建视图时的定义语句和视图的字符编码。
3、修改视图
(1)使用 create or replace view 语句修改视图
基本语法格式:
create [or replace] [algorithm = {undefined | merge | temptable}]
view view_name[(column_list)]
as select_statement
[with [cascaded | local] check option];
在使用 create or replace view 语句修改视图时,如果修改的视图存在,那么将使用修改语句对视图进行修改,如果视图不存在,那么将创建一个视图。
(2)使用 alter 语句修改视图
基本语法格式:
alter [algorithm = {undefined | merge | temptable}]
view view_name[(column_list)]
as select_statement
[with [cascaded | local] check option];
4、更新视图
更新视图是指通过视图来更新、插入、删除基本表中的数据。
(1)使用 update 语句更新视图
在 MySQL 中,可以使用 update 语句对视图中原有的数据进行更新。
例如:update view_stu set chinese = 50;
(2)使用 insert 语句更新视图
在 MySQL 中,可以使用 insert 语句向表中插入一条记录。
例如:insert into student values(1,'lily',90,80);
(3)使用 delect 语句更新视图
在 MySQL 中,可以使用 delect 语句删除视图中的部分记录。
例如:delect from view_stu where math = 80;
5、删除视图
删除视图时,只能删除视图的定义,不会删除数据。删除一个或多个视图可以使用 drop view 语句。
基本语法格式;
drop view [if exists]
view_name[,view_name1]···
[restrict | cascade];