MySQL 视图

1. 视图的定义

 视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

2. 视图的常用操作

1.创建

CREATE VIEW 视图名
AS [DQL语句(SELECT)]

注:查看视图DESC 视图名或者SHOW CREAT VIEW 视图名,与查看表语法基本一致。

例如:

CREATE OR REPLACE VIEW v1 as select concat(lower(substr('Abc',1,1)),upper(substr('Abc', 2)) ) res;

2 视图的修改

#方式一
CREATE OR REPLACE VIEW 视图名
AS [DQL]
# 方式二
ALTER VIEW 视图名
AS [DQL]

3. 视图的删除

DROP VIEW 视图1,视图2,视图3

4. 视图支持数据插入

INSERT INTO 视图名 values(XXX, XXX, XXX);

注意:对视图进行DML(UPDATE|SELECT|DELETE)操作会影响原表的数据

具备以下特点的视图不允许更新:

1. 包含分组函数(group by)、distinct、having、union或者union all

2常量视图

3SELECT包含子查询

4. 包含join的连接表查询

5. FROM A, A为一个没有更新权限的表

6. where子句的子查询引用了from子句中的表:

实际情况下,对视图进行更新操作是很少的,如果出现需要禁止视图的DML操作,可以考虑以上6种情况来创建视图。

 

3. 视图与表的对比

对存储而言,视图只是保存了SQL逻辑,而表是保存了数据

对操作而言,视图一般不使用增删改,主要做查询使用;

posted @ 2019-08-09 10:08  风来与你安  阅读(167)  评论(0编辑  收藏  举报