好程序员Java教程:SQL语言之视图,前言:程序员
本章咱们将学习MySQL中的视图,视图是数据库中的重要组件,本文将从视图是什么,视图的做用,建立和使用视图以及修改视图这些方面讲解视图。数据库
视图View是一种虚拟的表,自己不保存数据,内部封装了一条SELECT语句,数据来源于查询的一张或多张实际数据的表。安全
视图的结构和真实的表相同,也是有行和列组成,在视图上也能够进行增删改查的操做。函数
视图主要用于查询,使用视图的优势是:学习
1) 简单spa
视图能够将复杂的查询语句进行封装,用户使用时不须要关心表的结构、链接关系、筛选条件、分组和排序等等,只须要对视图进行简单的查询。blog
2) 安全排序
建立视图时,能够筛选掉一些不但愿用户看到的行和列,也能够给视图设置访问权限,让不一样级别的用户看到不一样的视图,从而提升数据库的数据安全性。教程
建立视图io
create view视图名
as
select语句;
删除视图
drop view视图名;
修改视图
replace view 视图名
as
select语句;
使用视图
selec * from 视图名 [where 条件];
代码案例:
注意:在建立视图时,查询语句中的别名会做为视图的列名
视图主要用于查询,可是也能够执行insert、update和delete语句,结果会映射到视图关联的实际表中。
执行上面代码的结果是,实际的tb_student表被更新了。
执行上面代码的结果是,更新失败,出现错误:
为何有的视图能够更新,而有的会失败呢?
下面状况的视图不能够执行insert、update和delete操做:
1)多表链接
2)包含distinct
3)包含聚合函数
4)包含group by
5)包含order by
6)包含union、union all
7)包含子查询等
因此对视图执行DML操做的限制条件仍是不少的,大多数状况下咱们仍是对视图进行查询,若是须要DML操做仍是建议对实际表进行操做。
视图是一种虚拟的表,数据来源于从实际表中查询的结果,它能够简化查询操做,以及提升数据库的安全性,本章学习了视图的建立和使用语法,视图能够修改可是有比较多的限制条件,通常仍是用于查询。