一、概念

视图,虚拟表,从一个表或者多个表中查询出来的表,作用和真实表一样,包含有一系列带有行和列的数据。视图中用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改数据,视图可以使用户操作方便,并保障数据库系统安全。

二、特点

  • 优点
    • 简单化,数据所见即所得
    • 安全性,用户只能查询或修改他们所能见到的数据
    • 逻辑独立性,可以屏蔽真实表变化所带来的影响
  • 缺点
    • 性能相对较差,简单的查询也会稍显复杂
    • 修改不方便,特别是复杂的聚合视图基本无法修改

三、创建视图

语法:CREATE VIEW 视图名 AS 查询数据源表语句

1. 创建

  1. CREATE VIEW t_empInfo
  2. AS
  3. SELECT employee_id, first_name, email, salary FROM t_employees;

2. 使用视图

# 查询视图中id为100的员工信息
SELECT * FROM t_empInfo WHERE employee_id=100;

四、视图修改

方式1:CREATE OR REFERENCE VIEW 视图名 AS 查询语句
方式2:ALERT VIEW 视图名 AS 查询语句

# 方式1:如果视图存在则进行修改,反之,进行创建
CREATE OR REPLACE VIEW t_empInfo
AS
SELECT employee_id, first_name, email, salary FROM t_employees;
# 方式2:直接对已存在的视图进行修改
ALERT VIEW t_empInfo
AS
SELECT employee_id, first_name, email, salary FROM t_employees;

五、删除视图

语法:DROP VIEW 视图名
不影响原表

六、视图的注意事项

注意:

  • 视图不会独立存储数据,原表发生改变,视图也发生改变。没有优化任何查询性能
  • 如果视图包含以下结构中的一种,则视图不可更新
    • 聚合函数的结果
    • DISTINCT 去重后的结果
    • GROUP BY 分组后的结果
    • HAVING 筛选过滤后的结果
    • UNION、UNION ALL 联合后的结果