二十一、MySQL基础系列笔记之视图

作者: 温新

分类: 【MySql】

阅读: 1722

时间: 2020-11-01 08:30:13

什么是视图

视图(View)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,且是在使用视图时动态生成的。

相对于普通表而言,视图的优势

  • **简单。**使用视图不需要关心对应的表结构、关联条件、筛选条件,视频是已经过滤好的复合条件的结果集;
  • **安全。**使用视图,只能访问被允许查询的结果集,对于的权限管理并不能限制某个行和某个列,但通过视图可以实现;
  • **数据独立。**视图结构一旦确定,可屏蔽表结构变化对用户的影响,源表增加列对视图无影响;源表修改列名,可通过修改视图来解决。

视图和表的区别

语法 实际是否占用物理空间 使用
视图 CREATE VIEW 只保存sql逻辑 增删改查(实际使用查询居多)
CREATE TABLE 保存数据 增删改查

创建视图

准备工作:建表并插入数据

CREATE TABLE test02(
	name varchar(20),
    email varchar(40)
);

INSERT INTO test02 VALUES ('lisi','lisi@163.com'),('wangwu','wangwu@163.com');

语法

CREATE VIEW 视图名 AS 查询语句;

案例

CREATE VIEW view_test02 AS SELECT * FROM test02;
mysql> select * from view_test02;
+--------+----------------+
| name   | email          |
+--------+----------------+
| lisi   | lisi@163.com   |
| wangwu | wangwu@163.com |
+--------+----------------+

查看视图

查看视图结构

语法

DESC/DESCRIBE 视图名;

案例

desc view_test02;

查看视图基本信息

语法

SHOW TABLE STATUS LIKE ‘视图名’;

案例

SHOW TABLE STATUS LIKE 'view_test02' \G;

查看视图详细信息

语法

SHOW CREATE VIEW '视图名';

案例

SHOW CREATE VIEW view_test02;

修改视图

准备工作:为test02表增加nick_name列;

ALTER TABLE test02 ADD nick_name VARCHAR(40) DEFAULT 'word';

语法

# 方式一
CREATE OR REPLACE VIEW 视图名 AS 查询语句;
# 方式二
ALTER VIEW 视图名 AS 查询语句;

案例

# 方式一
CREATE OR REPLACE VIEW view_test02 AS SELECT * FROM test02;

# 方式二
ALTER VIEW view_test02 AS SELECT name FROM test02;

删除视图

语法

DROP VIEW [IF EXISTS] 视图名;

案例

DROP VIEW IF EXISTS view_test02;

增加数据与修改数据的操作与操作表是一致的。

2020-11-01

请登录后再评论