视图是从一个或多个表中导出来的表,它是一种虚拟存在的表,并且表的结构和数据都依赖于基本表。
创建视图使用CREATE VIEW语句,语法格式如下:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
在单表上创建视图,语法格式如下:
CREATE VIEW view_stu AS SELECT math,chinese,math+chinese FROM student;
用SELECT语句查看view_stu视图,结果如下:
在student表上创建一个view_stu2的视图,字段名称自定义,语句如下:
CREATE VIEW view_stu2(math,chin,sum) AS SELECT math,chinese,
math+chinese FROM student;
用SELECT语句查看view_stu2视图,结果如下:
其中,sum是自定义字段。
在多表上创建视图,即在两个或者两个以上的基本表上创建视图。
再创一个stu_info表,在里面插入数据,最后用SELECT 语句查询,结果如下:
创建stu_glass视图,用SELECT 语句查询一下,如图所示:
查看视图,是指查看数据库中已经存在的视图的定义。查看视图必须要有SHOW VIEW的权限。其中,查看视图的方式有三种:1.使用DESCRIBE语句查看视图
2.使用SHOW TABLE STATUS 语句查看视图
3.使用SHOW CREATE VIEW 查看视图
1.使用DESCRIBE语句查看视图
用DESCRIBE语句可以查看视图的字段信息,其中包括字段名、字段类型等信息。基本语法格式如下:DESCRIBE 视图名;或DESC 视图名;
其中,NULL:表示该列是否可以存储NULL值。
Key:表示该列是否已经编制索引。
Default:表示该列是否有默认值。
Extra:表示获取到的与给定列相关的附加信息。
2、使用SHOW TABLE STATUS语句查看视图
用SHOW TABLE STATUS语句可以查看视图的基本信息。基本语法格式如下所示:
SHOW TABLE STATUS LIKE ‘视图名’;
其中,“LIKE” 表示后面匹配的是字符串,“视图名”表示要查看的视图的名臣,视图名臣需要使用单引号引起来。
3、使用SHOW CREATE VIEW查看视图
用SHOW CREATE VIEW语句不仅可以查看创建视图时的定义语句,还可以查看视图的字符编码。基本语法如下:SHOW CREATE VIEW 视图名;
修改视图:指修改数据库中存在的视图的定义。
修改视图的方式有两种:1.使用CREATE OR REPLACE VIEW语句修改视图
2.使用ALTER语句修改视图
1.使用CREATE OR REPLACE VIEW语句修改视图
用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 语句修改view_stu视图,语句如下:
CREATE OR REPLACE VIEW view_stu AS SELECT * FROM student;
2.使用ALTER语句修改视图
用ALTER语句修改view_stu视图,语句如下:
ALTER VIEW view_stu AS SELECT chinese FROM student;
更新视图:指通过视图来更新、插入、删除基本表中的数据。实际上就是在对其基本表中的数据进行增加或者删除操作。
有三种更新视图的方法:1.使用UPDATE语句更新视图
2.使用INSERT语句更新视图
3.使用DELETE语句更新视图
1.使用UPDATE语句更新视图
更新view_stu视图中chinese字段对应的数据值,将字段值改为100。在使用SELECT 语句查询student表中Chinese的信息。
UPDATE view_stu SET chinese = 100;
2.使用INSERT语句更新视图
使用INSER语句向student表中插入一条数据。其中s_id字段的值为4,name字段的值为“Lily”,math字段的值为100,chinese字段的值为100。最后使用SELECT 语句查看student表中的数据。
3.使用DELETE语句更新视图
使用DELETE语句在view_stu2视图中删除一条记录,再用SELECT 语句查看删除数据后的view_stu2视图中的数据信息。
再查看student表中的数据:
math等于70的数据也被删除了,说明视图中的删除操作最终是通过删除基本表中的相关的记录实现的。
删除视图,只能删除视图的定义,不会删除数据。删除一个或多个视图可以使用DROP VIEW语句。基本格式如下:
DROP VIEW[IF EXISTS]
view_name [,view_name1]…
[RESTRICT | CASCADE]
删除stu_glass视图,在使用SELECT 语句查看view_stu2视图,结果如下:
从查询结果可以看出,查询结果显示view_stu2视图不存在,说明视图被成功删除。