视图
定义:本质就是一张虚拟表。从一个或多个表中结合查询出来的结果集,作用和真实表一样。可以使用SELECT 语句查询数据,也可以使用INSERT,UPDATE,DELETE 来修改数据。
优点:1) 简单化,数据所见即所得;2) 安全性,用户只能查询或修改他们所能见到得到的数据;3) 逻辑独立性,可以屏蔽真实表结构变化带来的影响
缺点:1) 性能相对较差,简单的查询也会变得稍显复杂;2) 修改不方便,特别是复杂的聚合视图基本无法修改
特别强调
- 查看存储文件,可以发现,视图只有表结构文件,没有表数据文件
- 视图通常是用于查询,尽量不要修改视图中的数据
视图创建示例
-- 1.创建视图语法
-- 语法:create view view_name as sql语句;
create view v_user as select u.username,d.depname from user as u inner join dep d on u.pid = d.id;
-- 2.使用视图
-- 查询 语法:select * from 视图名;
select * from v_user;
-- 3.删除视图
-- 删除语法:drop view 视图名;
drop view v_user;
思考:实际开发过程中,视图的使用频率高吗?
在实际开发过程中,一般不会使用视图。假设我们在项目中使用了大量的视图,后期我们想要扩展某个功能的时候,这个功能恰巧又需要对视图进行修改,那么首先需要在MySQL中将视图修改,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通问题。
因此,MySQL中虽然有视图这个功能,但我们通常不会经常使用,几乎都是通过重新修改应用程序中的sql语句来扩展功能。