1、视图概念
是从一个或多个表中导出来的表,它是一种虚拟存在的表,表的结构和数据都依赖于基本表
应用场景:
- 多个地方用到同样的查询结果
- 该查询结果用到复杂的select语句
视图优点:
- 简化查询语句:简化用户的查询操作,使查询更加快捷。
- 安全性:更方便的进行权限控制。
- 逻辑数据独立性:屏蔽真实表结构变化带来的影响。
2、创建视图
a、语法
CREATE [OR REPLACE]
VIEW view_name [(column_list)]
AS select_statement
说明:
- CREATE:表示创建视图的关键字。
- OR REPLACE:可选,表示替换已有视图。
- view_name:表示要创建的视图名称。
- column_list:可选,用于指定视图中的各个列的名称。(省略则与SELECT语句查询的列相同)
- AS:表示视图要执行的操作。
- select_statement:一个完整的查询语句,表示从某些表或视图中查出某些满足条件的记录,将这些记录导入视图中。
例:创建视图,用于查看未登记生日的员工姓名,职称,工资和地址
3、修改视图
a、使用create or place
例:修改view_showEmp,将列名修改为ename,rname,salary,addr
b、使用alter
语法:
ALTER VIEW view_name [(column_list)]
AS SELECT_statement
例:修改view_showEmp,将列名修改为ename,rname,salary,addr
ALTER VIEW view_showEmp(ename,rname,salary,addr)
AS SELECT empname,rankname,salary,address
FROM employee e,rank r
WHERE e.rankid=r.rankid
AND birthday is null;
4、使用视图
例:查询未登录生日的员工姓名(从view_showEmp视图中查询ename)
SELECT ename -- 使用定义视图时重命名的列名,不能使用视图中未出现的列
from view_showemp;
例:使用视图数据更新表,将employee表中未登录生日的员工,生日更新为当天
5、删除视图
DROP VIEW 视图名;