Module 06 · Bonus Module: Advanced SQL for Data Engineers
Views视图
欢迎观看本视频,了解数据库中的视图 (Views)。
看完本视频后,您将能够:
- 定义视图。
- 描述何时使用视图。
- 解释创建视图的语法。
什么是视图? (Definition)
视图是一种替代表示方式,用于表示存在于一个或多个表(或视图)中的数据。
- 视图可以包含一个或多个基础表或现有视图中的全部或部分列。
- 创建视图就是创建了一个命名规范的结果表定义,可以像查询普通表一样查询它。
- 您还可以通过对视图运行 INSERT、UPDATE 和 DELETE 查询来更改基础表中的数据。
- 当您定义视图时,视图的定义被存储起来;而视图所代表的数据是存储在基础表中,而不是视图本身。
何时使用视图? (When to Use)
您可以使用视图来实现以下目的:
- 选择性地展示数据:
- 显示给定表的部分数据,从而可以省略敏感数据,例如税务信息、出生日期或薪水。
- 组合数据:
- 以有意义的方式组合两个或多个表。
- 简化访问控制:
- 通过授予对视图的访问权限,简化对数据的访问,而无需授予对底层表的访问权限。
- 聚焦相关数据:
- 仅显示与使用该视图的流程相关的数据部分。
💡 示例
您可以创建一个视图来仅显示 Employees 表中的非敏感数据:Employee ID、姓名、地址、职位 ID、经理 ID 和 部门 ID。该视图将不显示薪水或出生日期等敏感数据。
创建视图的语法 (Syntax)
您使用 CREATE VIEW 语句来创建一个基于一个或多个表或视图的视图。
1. 定义视图的步骤
- 使用
CREATE VIEW语句并为视图分配一个名称(长度最多 128 个字符)。 - 列出您想要包含的列。如果需要,可以使用别名 (alias) 来命名这些列。
- 使用
AS SELECT子句来指定视图中的列。 - 使用
FROM子句来指定基础表名称。 - 您可以添加可选的
WHERE子句来细化视图中的行。
2. 语法结构示例
SQL
CREATE VIEW ViewName (Column1, Column2, ...)
AS
SELECT Column_A, Column_B, ...
FROM BaseTable
WHERE Condition;
💻 创建视图示例
语句
CREATE VIEW EMPINFO AS SELECT EmpID, Name, Address FROM Employees;创建了一个名为EMPINFO的视图,它基于 Employees 表。SELECT 语句返回该视图中的数据。
3. 视图的动态性与限制
- 视图是动态的:它们由用于创建它们的 SELECT 语句所返回的数据组成。
- 当您在另一个 SQL 语句中使用视图时,它的行为就像您使用了返回视图内容的 SELECT 语句一样。
- 用于创建视图的 SELECT 语句可以命名其他视图和表,并且可以使用
WHERE、GROUP BY和HAVING子句。 - 限制:它不能使用
ORDER BY子句,也不能命名主变量 (host variable)。
🔍 带条件创建视图示例
在这个示例中,
EMPINFO视图是只针对 MANAGER_ID 为 30002 的行创建的。您可以使用 SELECT 语句显示该视图中的信息,并验证只包含 MANAGER_ID 为 30002 的行。
删除视图
如果您需要完全移除一个视图,可以使用 DROP VIEW 语句。
结论回顾
在本视频中,您学到了:
- 视图是访问表中数据的替代方式。
- 它们可以包含来自多个基础表和现有视图的指定列。
- 一旦创建,视图可以像表一样被查询,并且可以通过视图修改基础表中的数据。
- 视图是动态的;仅存储视图的定义,而不存储数据本身。
- 您可以使用
CREATE VIEW语句来创建基于一个或多个表或现有视图的视图。