实验8 视 图
视图是从一个或者几个基本表导出的表,是一个虚表。在定义一个视图时,只是把其定义存放在系统数据库中,而不是直接存储视图对应的数据,直到用户使用视图时才去查找对应的数据。视图一经定义,就可以和基本表一样被查询,也可以在一个视图之上再定义新的视图,但是对视图的更新(增加、删除、修改)操作则有一定的限制。
【实验目的】
①理解视图的概念和作用。
②掌握视图创建的方法。
③掌握视图删除的方法。
④掌握视图更新的方法。
【知识要点】
(1)创建与更新视图的语法格式
CREATE
[OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = user](https://www.daowen.com)
[SQL SECURITY {DEFINER | INVOKER}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
说明:其中常用的子句或参数解释如下。
①[OR REPLACE] 表示当已具有同名的视图时,将覆盖原视图。
②ALGORITHM:表示视图选择的算法。
• UNDEFINED:MySQL自动选择所要使用的算法。
• MERGE:将使用视图的语句与视图定义合并起来。
• TEMPTABLE:将视图的结果存入临时表,然后使用临时表执行语句。建临时表开销较大,适合于较复杂的视图,比如有聚合函数的视图等。
③WITH CHECK OPTION:强制视图上执行的所有数据修改语句都必须符合由 select_statement 设置的准则。通过视图修改行时,WITH CHECK OPTION 可确保提交修改后,仍可通过视图看到修改的数据。
④CASCADED:修改视图时,需要满足与该视图有关的所有相关视图和表的条件,该参数为默认值。
⑤LOCAL:修改视图时,只要满足该视图本身定义的条件即可。
(2)删除视图的语法格式
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE]