SQL 视图(Views)

简介: SQL 视图(Views)

视图是可视化的表。

本章讲解如何创建、更新和删除视图。


SQL CREATE VIEW 语句

在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

SQL CREATE VIEW 语法

CREATE VIEW view_name AS

SELECT column1, column2, ...

FROM table_name

WHERE condition;

参数说明:

  • CREATE VIEW: 声明你要创建一个视图。
  • view_name: 指定视图的名称。
  • AS: 指定关键字,表示视图的定义开始。
  • SELECT column1, column2, ...: 指定视图中包含的列,可以是表中的列或计算列。
  • FROM table_name: 指定视图从哪个表中获取数据。
  • WHERE condition: 可选部分,用于指定筛选条件,限制视图中的行。

注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。


SQL CREATE VIEW 实例

假设你有一个包含员工信息的表 employees,包括以下列:employee_id、first_name、last_name、salary 和 department_id,现在,我们将创建一个视图,显示工资高于某个阈值的员工信息。

实例如下:

-- 创建包含高工资员工信息的视图

CREATE VIEW high_salary_employees AS

SELECT employee_id, first_name, last_name, salary

FROM employees

WHERE salary > 50000;

在这个例子中,我们创建了一个名为 high_salary_employees 的视图,该视图包含了那些工资高于 50000 的员工的信息。

现在,你可以像查询普通表一样使用这个视图:

-- 查询高工资员工视图

SELECT *

FROM high_salary_employees;

这将返回所有工资高于 50000 的员工的详细信息,而不需要每次都编写相同的筛选条件。

值得注意的是,视图本质上是一个虚拟的表,它并不存储数据,而是基于基础表的查询结果生成。因此,如果基础表的数据发生变化,视图的内容也会相应地更新。

SQL 更新视图

在 SQL 中,你不能直接使用 UPDATE 语句来更新视图,因为视图是基于查询结果生成的虚拟表,而不是实际存储数据的表。

更新视图的实质是通过更新视图所基于的表中的数据,然后视图会反映这些变化。

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;

其中,table_name 是基础表的名称,column1, column2, ... 是要更新的列,value1, value2, ... 是新的值,condition 是更新的条件。

现在,我们希望向 "Current Product List" 视图添加 "Category" 列。我们将通过下列 SQL 更新视图:

举例来说,如果你有一个名为 high_salary_employees 的视图,显示工资高于 50000 的员工信息,而这个视图基于 employees 表的查询结果,你可以通过以下步骤来更新数据:

-- 步骤 1: 更新 employees 表中的数据

UPDATE employees

SET salary = 60000

WHERE employee_id = 1001;


-- 步骤 2: 查询更新后的高工资员工视图

SELECT *

FROM high_salary_employees;

这样,你更新了 employees 表中的数据,而视图 high_salary_employees 将反映出这些变化。



SQL 撤销视图

在 SQL 中,撤销(或删除)视图是通过使用 DROP VIEW 语句来实现的。

DROP VIEW 语句用于从数据库中删除一个已存在的视图。语法如下:

DROP VIEW [IF EXISTS] view_name;

参数说明:

  • DROP VIEW: 表示你要删除一个视图。
  • IF EXISTS: 可选部分,用于检查视图是否存在。如果存在,则执行删除操作;如果不存在,不会发生错误。在某些数据库系统中,这是可选的。
  • view_name: 指定要删除的视图的名称。

在执行以下语句后,视图 high_salary_employees 将被从数据库中删除。

-- 删除名为 high_salary_employees 的视图

DROP VIEW IF EXISTS high_salary_employees;

请注意,这并不影响基础表中的数据,只是删除了视图的定义。

如果你需要撤销或删除某个表中的数据,应该使用 DROP TABLE 语句。

在使用 DROP VIEW 语句时,请确保你真的想要删除该视图,因为一旦删除,将无法恢复视图的定义。

目录
相关文章
|
1月前
|
SQL 数据库
SQL使用视图的优缺点
SQL使用视图的优缺点
18 0
|
1月前
|
SQL 存储 数据库
sql事务、视图和索引
sql事务、视图和索引
|
1月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
95 0
|
1月前
|
SQL 存储 关系型数据库
sql语句,索引,视图,存储过程
sql语句,索引,视图,存储过程
38 0
|
1月前
|
SQL 数据库 数据库管理
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
89 11
|
1月前
|
存储 SQL 缓存
4.2.1 SQL语句、索引、视图、存储过程
4.2.1 SQL语句、索引、视图、存储过程
|
1月前
|
SQL JSON atlas
实时计算 Flink版产品使用合集之SQL Server CDC是否支持抽取SQL Server视图
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
SQL 自然语言处理 搜索推荐
SQL Server 索引和视图
SQL Server 索引和视图
|
1月前
|
存储 SQL 安全
使用SQL存储过程有什么好处 用视图有什么好处
使用SQL存储过程有什么好处 用视图有什么好处
13 0