十四、mysql 视图

含义:一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了SQL逻辑,不保存查询结果,和普通表一样使用

     Mysq5.1版本出现的新特性,是通过表动态生成的数据

应用场景(1)多个地方用到同样的查询结果

     (2)该查询结果使用的SQL语句较复杂

例子:查询姓张的学生名和专业名

    #未使用视图

    SELECT stuname,majorname

    FROM stuinfo AS s

    INNER JOIN major AS m

    ON s.majorid=m.id

    WHERE s.stuname LIKE ‘%’

  

    #使用视图

    CREATE VIEW v1

    AS

    SELECT stuname,majorname

    FROM stuinfo AS s

    INNER JOIN major AS m

    ON s.majorid=m.id

    SELECT * FROM v1 WHERE stuname LIKE ‘%’

一、创建视图

  语法:

    CREATE VIEW 视图名

    AS

    查询语句;

  视图的好处:(1)重用SQL语句

        (2)简化复杂的SQL操作,不必知道它的查询细节

        (3)保护数据,提高安全性

二、视图的修改

  1、方式一

    Create or replace view 视图名

    AS

    查询语句;

  2、方式二

    Alter view 视图名

    As

    查询语句;

三、视图的删除

  语法:

    Drop view 视图名,视图名,...

四、视图的查看

  DESC 视图名;

  SHOW CREATE VIEW 视图名;

五、视图的更新

  1、插入

  INSERT INTO view VALUES(...);

  2、修改

  UPDATE view SET...;

  3、删除

  DELETE FROM view ...;

  4、具备以下特点的视图不允许更新

    (1) 包含以下关键字的SQL语句:分组函数、distinctgroup byhavingunion或者union all

    (2) 常量视图

    (3) SELECT中包含子查询

    (4) JOIN

    (5) FROM一个不能更新的视图

    (6) WHERE子句的子查询引用了FROM子句中的表

原文地址:https://www.cnblogs.com/nuochengze/p/12651440.html