数据库之视图

视图

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;

注意:

  1. 创建视图在硬盘上只会有表结构(.frm),没有表数据(.idb). 数据还是来自于之前的表
  2. 视图一般只用来查询,里面的数据不要修改,因为可能会影响到真正的表中的数据. 如果你要修改还不如重新创建一个视图.
  3. 视图的修改一般只针对创建视图时 as 后面定义的虚拟表的sql查询语句

说到底,视图在以后用到的频率高不高呢??

-- 不高
-- 因为当你创建了很多视图之后,会造成表的不好维护.且视图有明显的效率问题.
-- 视图是存放在数据库中的,我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用
原文地址:https://www.cnblogs.com/jkeykey/p/14457455.html