18 视图

1. 创建视图

CREATE  [ OR REPLACE ]  ALGORITHM = UNDEFINED/MERGE/TMEPTABLE

VIEW VIEW_NAME

AS SELECT_statement

WITH  CASCADED/LOCAL CHECK OPTION

● OR REPLACE 如果给定了此字句,表示该语句能够替换已有视图。

●  ALGORITHM  可选,表示视图选择的算法

                           UNDEFINED  表示MySQL将自动选择所要使用的算法。  默认为这个

                           MERGE   表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。

                           TMEPTABLE  表示将视图的结果存入临时表,然后使用临时表执行语句。

●   view_name  表示要创建的视图名称。

●   column_list  可选,表示属性清单,指定了视图中各个属性的名

●   AS  表示指定视图要执行的操作

●   SELECT_statement  是一个完整的查询语句,表示从某个表或视图中查出某些满足条件的记录,将这些记录导入视图中。

●   WITH CHECK OPTION  可选,百世创建视图时要保证在该视图的权限范围之内

●   CASCADED  可选,表示创建视图时,需要满足跟该视图有关的所有相关视图和表的条件,该参数为默认值

●   LOCAL  可选,表示创建视图时,只要满足该视图本身定义的条件即可

○  在单表上创建视图

创建一张视图,包含学生的 数学 语文 数学+语文

○  在多表上创建视图

 

 2.  查看视图

 ○ DESCRIBE / DESC  视图名   --  查看视图结构

 ○ SHOW TABLE STATUS LIKE  ' 视图名 '   --   查看视图信息

 ○ SHOW CREATE VIEW  视图名    --  查看创建视图的语句

3.修改视图

○  CREATE OR REPALCE VIEW  视图名

初始结构:                                                                   

  更新过结构

○  ALTER [ ALGORITHM = UNDEFINED / MEGRE / TEMPTABLE ]

    VIEW view_name [ column_list ]

    AS SELECT_statement

    [ WITH [ CASCADED / LOCAL ] CHECK OPTION ]

4. 更新视图  --  对视图的操作其实就是对真实表中的操作

○ UPDATE  语句

  ○ INSERT 语句

○ DELETE 语句

○  以下几种情况无法更新视图

  • 视图中不包含基本表中被定义为非空的列。
  • 在定义视图的SELECT语句后的字段列表中使用了数学表达式。
  • 在定义视图的SELECT语句后的字段列表中使用了聚合函数。
  • 在定义视图的SELECT语句中使用了 DISTINCT / UNION / TOP / GROUP BY / HAVING 字句

5. 删除视图

DROP VIEW [ IF EXISTS ] view_name... [ RESTRICT / CASCADE ]

猜你喜欢

转载自www.cnblogs.com/deepsealin/p/12902112.html
18