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] 视图名称;
  • 相关阅读:
    Linux环境下入侵工具Knark的分析及防范 java程序员
    六个步骤即可防范ARP地址欺骗类病毒 java程序员
    巧用命令行 揪出ARP欺骗病毒母机方法 java程序员
    poj3264Balanced Lineup(线段树RMQ)
    有了1A的把握再去提交
    poj2828Buy Tickets(线段树 单点更新+区间求和+区间第K值)
    poj2513Colored Sticks(无向图判欧拉路、回路+trie树)
    ACM数学(转)
    sdut2381Broken Keyboard
    sdut2383Decode the Strings(循环节)
  • 原文地址:https://www.cnblogs.com/0820LL/p/9710955.html
Copyright © 2011-2022 走看看