视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据,通过视图,可以展现基表部分的数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。
基表:如果视图的数据来源于一张表,用来创建视图的表叫做基表base table。如果视图的数据来自于多张表,所创建的视图数据的主键来源于哪张表,那张表就是基表。
为什么使用视图,好处是什么?
安全:使用视图的用户只能访问他们被允许查询的结果集。由于视图是虚拟表,我们可以根据具体的需求,创建对应的视图,把视图给人使用,那么这些人是不知道具体的数据来源及表的。
简单:使用视图的用户用户完全不需要关心后面对应的表的结构,关联条件和筛选条件,使用视图的人,只需要关心视图使用后的数据。不需要操心结构或条件。
数据独立:一旦视图的结构确定了,源表增加列对视图没有影响,源表修改列名,则可以通过修改视图视图来解决,不会造成访问者的影响。
视图创建之后,使用者不需要关心其结构,只关心数据,如果基表的数据发生变化,那么视图对应的数据同样发生变化。
创建视图语法:
create view 视图的名字 as Select 查询语句
查询视图的语法:
select * from 视图的名字
修改视图的语法
alter view 视图的名字 as Select 查询语句
DML修改视图
视图本身没有数据,因此对视图进行增加,删除,更新的操作最终都体现在基表当中
注意:下列内容之一,视图不能做DML操作:
01:select子句中包含distinct
02:select语句中包含group by子句
03:select语句中包含order by子句
04:select语句中包含union,union all等集合运算符