视图
1.什么是视图?
-- 视图就是通过查询得到的一张虚拟表,然后将其保存下来,方便下次可以直接使用.视图的本质也是一张表.
2.为什么要有视图?
-- 如果频繁的操作一张虚拟表(拼表组成的),那么就可以将这个虚拟表建成一个视图,方便后续查询.
3.视图的使用
-- 固定语法
create view 表名(最好让别人知道这个是视图不是表,可以设计为x2x_view的格式)
as 虚拟表的查询sql语句;
-- 具体案例
-- 准备好俩张表,老师和课程的表
create view teacher2course_view as
select * from teacher
inner join course
on teacher.tid = course.teacher_id;
show tables;
select * from teacher2course_view;
-- 修改视图
alter view teacher2course_view as
select * from course
where cid > 3;
show tables;
select * from teacher2course_view;
-- 删除视图
drop view teacher2course_view;
show tables;
注意:
- 创建视图在硬盘上只会有表结构(.frm),没有表数据(.idb). 数据还是来自于之前的表
- 视图一般只用来查询,里面的数据不要修改,因为可能会影响到真正的表中的数据. 如果你要修改还不如重新创建一个视图.
- 视图的修改一般只针对创建视图时 as 后面定义的虚拟表的sql查询语句
说到底,视图在以后用到的频率高不高呢??
-- 不高
-- 因为当你创建了很多视图之后,会造成表的不好维护.且视图有明显的效率问题.
-- 视图是存放在数据库中的,我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用