zoukankan      html  css  js  c++  java
  • MySQL视图 VIEW

    视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,不同于基本表,视图是一个虚表。在数据库中,存放的只是视图的定义而已,而不存放数据,这些数据仍然存放在原来的基本表结构中。只有在使用视图的时候才会执行视图的定义,从基本表中查询数据。

    视图和普通表的区别

    视图的优势

    创建视图

    CREATE [OR REPALCE] [ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}] VIEW 视图名称[(列名称)] AS 
    SELECT 列名称
    FROM 表名称
    WHERE 筛选条件
    [WITH [CASCADED|LOCAL] CHECK OPTION];

     CREATE OR REPLACE  # 表示创建新视图,如果视图存在就替换

    ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}  # 表示视图选择的算法,默认是UNDEFINED,即MySQL会自动选择要使用的算法;

    WITH [CASCADED|LOCAL] CHECK OPTION  # 表示视图在更新时保证在视图的权限范围之内。默认是CASCADED,即更新视图时要满足视图和表的相关条件;LOCAL表示更新视图时只要满足该视图定义的一个条件即可。

    如果创建视图时不明确指定视图的列名,则列名就和定义视图的select字句中的列名完全相同;如果显示的指定视图的列名,就按照指定的列名,注意视图后面的列名的数量必须和select字句中的列名的数量相同。

    简单的基本格式:

    CREATE VIEW 视图名称(列名称) AS
    SELCET 列名称
    FROM 表名称
    WHERE 筛选条件
    WITH CHECK OPTION;

    视图一旦创建完成,就可以像一个普通表那样使用,视图主要用来查询。

    查看视图

    SHOW CREATE VIEW 视图名称G;

    或者查看infromation_schema数据库中的views表,该表记录了有关视图的信息。

    SELECT *
    FROM information_schema.views
    WHERE TABLE_NAME='视图名称'G;

    更改视图

    方式一 使用  CREATE OR REPALCE VIEW  语句(见创建视图部分)

    方式二 使用 ALTER 语句修改视图

    方式三 使用DML操作更新视图(Data Manipulation Language 数据操纵语言)

    因为视图本身没有数据,因此对视图进行的DML操作最终都体现在基表中

    删除视图

    删除视图是指删除数据库中已经存在的视图,删除视图时,只能删除视图的定义,不会删除数据,及不会删除基表。

    DROP VIEW [IF EXISTS] 视图名称;
  • 相关阅读:
    归并排序的java实现
    Hanoi问题java解法
    j2ee之Filter使用实例(页面跳转)
    java工具类之Graphics
    java程序设计之循环链表
    Java程序设计求出岁数
    Java程序设计之链表结构
    CENTOS 6 通过YUM升级GCC到4.7/4.8
    Object c的NSString的使用,创建,拼接和分隔,子string,substring
    Let’s Encrypt 最近很火的免费SSL 使用教程
  • 原文地址:https://www.cnblogs.com/0820LL/p/9710955.html
Copyright © 2011-2022 走看看