MySQL视图

摘要:

这是一篇关于MySQL的文章,主要介绍MySQL视图

MySQL视图

1. 基本概念

视图里存储的内容和原始表一样,但是里面存储的是SQL查询语句的定义,存储的是SQL的定义

视图的优点

  1. 安全:可以隐藏一些数据
  2. 一些复杂的数据可以便于理解与使用

2. 创建视图

CREATE [ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}]
  view 视图名[(字段1,字段2)]
  as select 语句
  [with [CASCADED|LOCAL|] CHECK OPTION]

  --CHECK OPTION约束虚表的操作
create view 视图名
  as select 语句

建议用一个单独的数据库来存放视图

3. 查看视图

查看某个数据库中的视图或者表

show table status from 数据库名字\G

*************************** 1. row ***************************
           Name: view_user
         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.01 sec)

查看某一个具体视图

show table status from view like 'view_user'\G

查看某个视图的具体信息

show create view view_user\G

4. 修改视图

4.1 替换原有视图

mysql> create or replace view view_user as select
    -> Host, User, Password from mysql.user;

4.2 利用alter修改视图

alter view view_user as select Host, User from mysql.user;

5. 删除视图

DROP VIEW view_name;

6. 通过视图操作基表

SELECT, INSERT, UPDATE都可以

INSERT只能应用于存在于一个表上的视图(多表连接的视图不行),而且如果省略的值没有默认值也回有警告。

2016年04月10日 / 10:56