zoukankan      html  css  js  c++  java
  • 十四、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子句中的表

  • 相关阅读:
    算法(第4版)-1.4.8 处理对于输入的依赖
    设计模式学习笔记之练习代码
    常用算法Java实现之快速排序
    常用算法Java实现之希尔排序
    常用算法Java实现之直接插入排序
    常用算法Java实现之选择排序
    常用算法Java实现之冒泡排序
    Java 集合框架之 Map
    Java 集合框架之Collection
    HBase 参考文档翻译之 Getting Started
  • 原文地址:https://www.cnblogs.com/nuochengze/p/12651440.html
Copyright © 2011-2022 走看看