zoukankan      html  css  js  c++  java
  • MySQL<视图>

    视图

      视图概述

        视图是指从一个或几个基本表中导出的表,可以像操作基本表一样操作视图。视图中只存放视图定义而不存放视图对应的数据。

        如果基本表的数据发生变化,从视图中查询出的数据也会发生变化。因此可以把视图认为是一个虚拟表。

      优点

        简化查询语句

            日常开发中我们可以将经常使用的查询定义为视图,从而使用户避免大量重复的操作。

    安全性

            通过视图用户只能查询和修改他们所能见到的数据,数据库中的其他数据则既看不到也取不到。

        逻辑数据独立性

        视图可以帮助用户屏蔽真实表结构变化带来的影响。

    视图管理

      创建视图的语法格式

        create view<视图名>[(<列名>...)] as 子查询 [WITH CHECK OPTION]

        子查询可以出现任意select语句,但通常在查询语句中不允许出现Order by和DISTINCT

      在单表上创建视图

      在多表上创建视图

      查看视图

        使用DESCRIBE语句可以查看视图的字段信息

        DESCRIBE 视图名;

        或DESC 视图名;

        使用SHOW TABLE STATUS语句可以查看视图的基本信息

        SHOW TABLE STATUS LIKE '视图名'

        使用SHOW CREATE VIEW语句不仅可以查看创建视图时的定义语句,还可以查看视图的字符编码

        SHOW CREATE VIEW 视图名;

      修改视图

        由于视图是不实际存储数据的虚拟表,因此更新视图的操作,最终要转化为对基本表的更新操作。为了防止对视图进行数据更新时,对不属于视图范围的基本表数据进行操作,可以在定义视图时加上WITH CHECK OPTION子句。

        我们发现表中数据发生了改变。由于视图多是给用户进行浏览的,并不需要其进行修改,所以这样做很不安全。所以我们一般在SQL语句末尾加上WITH CHECK OPTION子句,这样用户就不能随意进行修改了。

        1、使用CREATE OR REPLACE VIEW语句修改视图

          CREATE [OR REPLACE ][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

          VIEW view_name [(column_list)]

          AS SELECT_statement

          [WITH[CASCADED | LOCAL] CHECK OPTION]

        2、使用ALTER语句修改视图

          ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

          VIEW view_name [(column_list)]

          AS SELECT_statement

          [WITH[CASCADED | LOCAL] CHECK OPTION]

      更新视图

        当视图中包含有如下内容时,视图的更新操作将不能被执行:

        视图中不包含基本表中被定义为非空的列。

        在定义视图的SELECT语句后的字段列表中使用了数学表达式。

        在定义视图的SELECT语句后的字段列表中使用聚合函数。

        在定义视图的SELECT语句中使用了DISTINCT,UNION,TOP,GROUP BY或HAVING子句。

        使用UPDATE语句更新视图

        使用DELETE语句更新视图

        使用INSERT语句更新视图

      删除视图

        只能删除视图的定义,不会删除数据。

        drop view <视图名>

        应用案例--视图的应用

  • 相关阅读:
    spring mvc 源码简要分析
    tomcat 开启远程debug
    jdk1.5-jdk1.9的主要区别
    关于elasticsearch 6.x及其插件head安装(单机与集群)5分钟解决
    mysql主从配置(5分钟解决问题)
    内部类总结
    Colored Sticks
    vim 将tab转为空格
    shell编程
    vim -- 查找和替换
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7620193.html
Copyright © 2011-2022 走看看