- 计算机数据库中的视图是一个虚拟表,其内容由查询定义;
- 不是数据表,因为它不能存储数据;
- 只是一个或多个数据表中数据的逻辑显示。
- 本质:一条被命名的SQL语句。
视图好处:
- 对机密数据提供安全保护,限制对数据的访问;
- 简化复杂的查询;
- 提供数据的独立性;
- 分解复杂的查询需求,创建多个视图获取数据。将视图联合起来就能得到需要的结果了。
- 提供对相同数据的不同显示。
语法:
CREATE OR REPLACE VIEW view1 AS subquery; #subquery为查询语句
建立好的视图与普通数据表没什么区别了,增删改查均可以。但通常我们不允许改变视图的数据。
- MySQL等大部分数据库在创建视图时加入with check option语句,表示创建的视图不允许修改。(此时若修改视图数据,SQL不报错,但无法真正修改)
- Oracle使用with read only。
删除视图:
drop view 视图名;
视图缩减业务逻辑
视图用来隐藏复杂的业务逻辑,从join连接查询产生一个view。先使用视图完成一定的逻辑,再在视图的基础上完成另外的逻辑。 通常,视图完成的逻辑都是相对比较基础的逻辑。
Note:
- 尽量使用视图完成读操作;
- 对视图的修改,也是对基表的修改,会即时生效;
- 删除视图时,不会销毁实体表内的数据;
- 如果做的是外部接口,一个数据库多个应用,针对每一个应用,采用不同的视图接口。