zoukankan      html  css  js  c++  java
  • 视图

    6.1 视图概述

    6.1.1 视图的含义

    视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。视图还可以从已经存在的视图的基础上定义。
    视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改和删除。当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化;同时,若基本表的数据发生变化,则这种变化可以自动地反映到视图中。

    6.1.2 视图的作用

    与直接从数据表中读取相比,视图有以下优点:
    ● 简单性
    ● 安全性
    ● 逻辑数据独立性

    6.2 创建视图

    6.2.1 创建视图的语法形式

    创建视图使用CREATE VIEW语句,基本语法格式如下:
    CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS SELECT_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]

    6.2.2 在单表上创建视图

    MySQL可以在单个数据表上创建视图。
    【例6.1】在t表上创建一个名为view_t的视图,代码如下:
    首先创建基本表并插入数据,语句如下:
    CREATE TABLE t (quantity INT, price INT);
    INSERT INTO t VALUES(3, 50);

    6.2.3 在多表上创建视图

    MySQL中也可以在两个或者两个以上的表上创建视图,可以使用CREATE VIEW语句实现。
    创建视图stu_glass,语句如下:
    CREATE VIEW stu_glass (id,name, glass) AS SELECT student.s_id,student.name ,
    stu_info.glass
    FROM student ,stu_info WHERE student.s_id=stu_info.s_id;

    6.3 查看视图

    6.3.1 DESCRIBE语句查看视图基本信息

    DESCRIBE可以用来查看视图。
    DESCRIBE 视图名;
    【例6.4】通过DESCRIBE语句查看视图view_t的定义,代码如下:
    DESCRIBE view_t;

    6.3.2 SHOW TABLE STATUS语句查看视图基本信息

    查看视图的信息可以通过SHOW TABLE STATUS的方法。
    SHOW TABLE STATUS LIKE '视图名';
    【例6.5】下面将通过一个例子来学习使用SHOW TABLE STATUS命令查看视图信息,代码如下:
    SHOW TABLE STATUS LIKE 'view_t' G

    6.3.3 SHOW CREATE VIEW语句查看视图详细信息

    使用SHOW CREATE VIEW语句可以查看视图详细定义。
    SHOW CREATE VIEW 视图名;
    【例6.6】SHOW CREATE VIEW查看视图的详细定义,代码如下:
    SHOW CREATE VIEW view_t G

    6.3.4 在views表中查看视图详细信息

    在MySQL中,information_schema数据库下的views表中存储了所有视图的定义。通过对views表的查询,可以查看数据库中所有的视图的详细信息。
    SELECT * FROM information_schema.views;
    【例6.7】在views表中查看视图的详细定义,代码如下:
    mysql> SELECT * FROM information_schema.viewsG

    6.4 修改视图

    6.4.1 CREATE OR REPLACE VIEW语句修改视图

    修改视图,使用CREATE OR REPLACE VIEW语句,语法如下:
    CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS SELECT_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]

    6.4.2 ALTER语句修改视图

    ALTER语句是MySQL提供的另外一种修改视图的方法。
    ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS SELECT_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]

    6.5 更新视图

    更新视图是指通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟表,其中没有数据。通过视图更新的时候都是转到基本表进行更新的,如果对视图增加或者删除记录,实际上是对其基本表增加或者删除记录

    6.6 删除视图

    当视图不再需要时,可以将其删除,删除一个或多个视图可以使用DROP VIEW语句,删除视图必须拥有DROP权限。
    DROP VIEW [IF EXISTS]
    view_name [, view_name] ...
    [RESTRICT | CASCADE]
    6.7 综合案例——视图应用

    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    Codechef EDGEST 树套树 树状数组 线段树 LCA 卡常
    BZOJ4319 cerc2008 Suffix reconstruction 字符串 SA
    Codechef STMINCUT S-T Mincut (CodeChef May Challenge 2018) kruskal
    Codeforces 316G3 Good Substrings 字符串 SAM
    Codechef CHSIGN Change the Signs(May Challenge 2018) 动态规划
    BZOJ1396 识别子串 字符串 SAM 线段树
    CodeForces 516C Drazil and Park 线段树
    CodeForces 516B Drazil and Tiles 其他
    CodeForces 516A Drazil and Factorial 动态规划
    SPOJ LCS2
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15315126.html
Copyright © 2011-2022 走看看