前言
视图是什么?
视图本质上就是一张表,将特定条件下查询出来的结果筛选出来,在内存中形成一张表并将查询结果插入表中。
一、创建视图
create view 视图名 as select语句;
案例:根据员工名和所在部门,创建一张视图。
create view myview as select ename,dname from emp inner join dept on emp.deptno=dept.deptno;
修改视图影响基表,修改基表影响视图
从视图中更新数据:
mysql> update myview set ename=‘smith’ where ename=‘SMITH’;
将表格数据更新后,视图表如下:
员工表如下:
总结:修改视图表,基表也会跟着改。
现在来修改基表:
mysql> update emp set ename=‘SMITH’ where ename=‘smith’;
基表修改完成后,发现基于该基表创建的视图,也同样被修改了。
删除视图
drop view 视图名;
视图规则和限制
视图规则和限制
1.与表一样,必须唯一命名(不能出现同名视图或表名)
2.创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
3.视图不能添加索引,也不能有关联的触发器或者默认值
4.视图可以提高安全性,必须具有足够的访问权限
5.order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖
6.视图可以和表一起使用