MySQL之视图

1、概念:

视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全。

 

2、语法

创建方法:

    CREATE

        [OR REPLACE]

        [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

        [DEFINER = { user | CURRENT_USER }]

        [SQL SECURITY { DEFINER | INVOKER }]

        VIEW view_name [(column_list)]

        AS select_statement

        [WITH [CASCADED | LOCAL] CHECK OPTION]

删除视图:

    DROP VIEW [IF EXISTS]

        view_name [, view_name] ...

        [RESTRICT | CASCADE]

 

3、优缺点

优点:

  简单化,数据所见即所得

  安全性,用户只能查询或修改他们所能见到得到的数据

  逻辑独立性,可以屏蔽真实表结构变化带来的影响

 缺点:

  性能相对较差,简单的查询也会变得稍显复杂

  修改不方便,特变是复杂的聚合视图基本无法修改

 

4、举例

查看主表信息
mysql > SELECT * FROM student;
+-------+-------+------+
| StuID | Name  | Age  |
+-------+-------+------+
|     1 | tom   |   20 |
|     2 | jerry |   30 |
|     3 | bob   |   40 |
+-------+-------+------+

创建视图
mysql > CREATE VIEW view_stu SELECT * FROM student WHERE Age>=25;

查询视图
mysql > SELECT * FROM view_stu;
+-------+-------+------+
| StuID | Name  | Age  |
+-------+-------+------+
|     2 | jerry |   30 |
|     3 | bob   |   40 |
+-------+-------+------+

查看某表是否为视图
mysql > SHOW TABLE STATUS LIKE 'view_stu'\G
*************************** 1. row ***************************
           Name: view_stu
         Engine: NULL
        Version: NULL
     Row_format: NULL
           Rows: NULL
 Avg_row_length: NULL
    Data_length: NULL
Max_data_length: NULL
   Index_length: NULL
      Data_free: NULL
 Auto_increment: NULL
    Create_time: NULL
    Update_time: NULL
     Check_time: NULL
      Collation: NULL
       Checksum: NULL
 Create_options: NULL
        Comment: VIEW      此处信息表示为视图
1 row in set (0.00 sec)

删除视图
mysql > DROP VIEW  view_stu

 

posted on 2019-11-07 10:17  强叔Linux  阅读(297)  评论(0编辑  收藏  举报