Mysql内置功能之视图
(随手记录学习笔记)
创建视图表,可以方便下次查询:
比如说查询大于所有人平均年龄的员工名与年薪,以下是查询语句
select name,age from employee where age > (select avg(age) FROM employee);
现在我们将其建立为视图表:
create view name_age as select name,age from employee where age > (select avg(age) FROM employee);
之后再想查询就可以直接
select * from name_age
就可以了。
视图是一个虚拟表(非真实存在),其本质是 根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用 名称 即可获取结果集,可以将该结果集当做表来使用。
这样说,可能有的人就觉得:啊视图表好方便啊!就都用这个吧!不行。
因为视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用,而且修改视图,原始表也跟着改。
修改视图的语法:alter view 视图名称 as sql语句
删除视图的语法:drop view 视图名称