定义
mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。
优势
- 简化sql语句
- 提高了sql的重用性
- 保护基表的数据,提高了安全性
视图的创建与使用
- 创建
create view 视图名 as 查询语句
- 修改
方式一
create or replace view 视图名 as 查询语句;
方式二
alter view 视图名 as 查询语句
- 删除
drop view 视图1,视图2
- 查看
desc 视图名 show create view 视图名
- 使用
插入
- insert into 视图名(字段名) values (值)
- insert into 视图名 set 字段名=值
修改
- update 视图名 set 字段名=值 where 条件
删除
- delect from 视图名 where 条件
查询
- select 字段名 from 视图名 where 条件
- 注意
视图一般用于查询的,而不是更新的,所以具备以下特点的视图都不允许更新
- 包含分组函数、group by、distinct、having、union、join
- 常量视图
- where后的子查询用到了from中的表
- 用到了不可更新的视图
视图与表对比
关键字 | 是否占用物理空间 | 使用 | |
视图 | view | 占用较小,只保存sql逻辑 | 一般用于查询 |
表 | table | 保存实际的数据 | 增删查改 |