视图的引入
1.虚拟的表,没有物理数据,是从一个或者多个表中导出来的
2.只存放了视图的定义,并没有数据,数据存在原来的表中
3.使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。
视图的作用
1.使操作简便画
2.增加数据的安全性
3.提高表的逻辑独立性
创建视图
CREATE[ALGOR ={UNDEFIEND|MERGE|TEMPTABLE}]
VIEW 视图名【(属性清单)】
AS SELECT
[WIHT [CASCADED|LOCAL] CHECK OPTION];
ALGORITHM是可选参数,表示视图选择的算法;
“视图名”参数表示要创建的视图名称
“属性清单”是可选参数,其指定了视图中的各种属性的名词,默认情况下与SELECT语句中查询的数据相同;
SELECT语句参数是一个完整的查询语句,标识从某个表查询出某些满足条件的记录,将这些记录导入视图中;
WITH CHECK OPTION 是可选参数,表是否更新视图时要保证在该视图的权限范围之内。
ALGORITHM包括3个选项UNDEFINED、MERGR、TEMPTABLE。其中,UNDEFINED选项表示Mysql将自动选择要所使用的算法;MERGE选项表示将使用视图的语句与视图定义合并起来使用,使得视图定义的某一部分取代语句的对应部分;TEMPTABLE选项表示将视图的结果存入临时表,然后使用临时表执行语句;
CASCADED是可选参数,表示更新视图是要满足所有相关视图和表的条件。该参数为默认值;
LOCAL表示更新视图时,要满足该视图本身的定义条件即可;
查看视图
DESCRIBE 语句查看视图基本信息
SHOW TABLE STATUS语句查看基本信息
SHOW CREATE VIEW 语句查看视图详细信息
在views表中查看视图详细信息
修改视图
CREATE OR REPLACE VIEW 语句修改视图
CREATE OR REPLACE [ALGORITHM=(UNDEFINED|MERGE|TEMPTABLE)]
VIEW 视图名[(属性清单)]
AS SELECT 语句
[WITH[CASCADED|LOCAL]CHECK OPTION];
ALTER语句修改视图
ALTER [ALGORITHM=(UNDEFINED|MERGE|TEMPTABLE)]
VIEW 视图名[(属性清单)]
AS SELECT 语句
[WITH[CASCADED|LOCAL]CHECK OPTION]];
更新视图
更新视图是指通过视图来插入(insert)、更新(update)和删除(delete)表中的数据。因为视图是应该虚拟的表,其中没有数据。通过视图更新时,都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。超出了范围,就不能更新。
插入(INSERT)
更新(UPDATE)
删除(DELETE)
删除视图
删除视图时指删除数据库中已经存在的视图。删除视图时,只能删除视图的定义,不会删除数据;
DROP VIEW [IF EXISTS] 视图名列表[RESTRIC|CASCADE]