视图是数据库中的一个对象,它是数据库管理系统提供给用户的以多种角度观察观察数据库的一种重要机制。
视图是从一个或多个表或者其他视图中通过查询语句导出的表
通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。
一,创建视图
createview 语句用来创建视图
createview 视图名称 [(列名)]
as 查询语句
[with[cascaded|local]] check option]
列名:可选项用于为视图中的每个列指定明确的名称,且列名的数目必须等于 select 语句检索出的结果数据集的列数,如果省略列名,则新建视图使用与基本表中相同的列名。
查询语句:指定创建视图的 select 语句
with check option:可选项,用于指定在可更新视图上所进行的修改都需要符合 查询语句所指定的限制条件,这样可以确保数据修改后,仍可以通过视图看到修改后的数据。
当视图是根据另一个视图定义时,关键字 ‘with check option’ 给出两个参数,即 cascaded 和 local,他们决定检查测试的范围。
其中,关键字 “cascaded” 为选项默认值,他会对所有视图进行检查,而关键字 “local”则使 check option只对定义的视图进行检查。
两张基准表创建一张视图
二,删除视图
使用 drop view 语句来删除视图
drop view [if exists]
视图名称1,视图名称2 。。。。。
三,修改视图定义
在MySQL中,可以使用 alter view 语句来对已有的定义(结构)进行修改
alter view 视图名 [(列名)]
as
查询语句
[with[cascaded|local]] check option]
四,查看视图定义
在MySQL中,可以使用 show create view 语句来查看已有视图的定义
show create view 视图名
五,更新视图数据
由于视图是一个虚拟表,所以通过插入,修改和删除等操作方式来更新视图中的数据,实质上实在更新视图所引用的基本表中的数据。
1,使用 insert 语句通过视图向基本表中插入数据
2.使用 update 语句通过视图修改基本表的数据
如果一个视图依赖于多个基本表,则一次视图数据修改操作只能改变一个基本表中的数据
3.使用 delete 语句通过视图删除基本表的数据