含义
是虚拟表,和普通表一样使用,它与包含数据的表不一样,视图只包含使用时动态检索数据的查询。
例如:一个年级有22个班级,有一天领导要来视察学校的情况,领导比较喜欢精英教育,如实为了应付领导的视察,学校从22个班级里临时抽调出一部分人组成一个新的临时班级23班,领导走之后这个班级就解散。那么原来的22个班级就是我们普通的表,而23班就是视图,虚拟表,一个临时生成的表。
应用场景
- 多个地方需要用到相同的查询结果
- 该查询结果使用的SQL语句较为复杂
案例
案例1:
SELECT last_name,department_name
FROM employees e,departments d
WHERE e.`department_id`=d.`department_id`
AND e.`commission_pct` IS NOT NULL;
上面这段用来查询奖金非空(有奖金)的员工名和部门名。任何需要这个数据的人都必须理解相关表的结构,并且知道如何创建查询和对表进行联结。现在加入将整个查询封装成一个名为departmentid的虚拟表,可以使用有如下的命令轻松检索:
SELECT last_name,department_name
FROM departmentid
WHERE e.`commission_pct` IS NOT NULL;
这就是视图的作用。
案例2:查询姓张的学生名和专业名
SELECT stuname,majorname
FROM stui