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 语句时,请确保你真的想要删除该视图,因为一旦删除,将无法恢复视图的定义。

目录
相关文章
|
5月前
|
SQL 存储 数据库
实验4:SQL视图操作与技巧
在SQL数据库管理中,视图(View)是一种虚拟表,它基于SQL查询的结果集创建,并不存储实际数据,而是存储查询定义
|
5月前
|
SQL 存储 数据库
实验4:SQL视图操作技巧与方法
在数据库管理系统中,视图(View)是一种虚拟表,它基于SQL查询的结果集创建,并不实际存储数据
|
5月前
|
存储 SQL 安全
|
5月前
|
SQL 数据库
SQL使用视图的优缺点
SQL使用视图的优缺点
141 0
|
5月前
|
存储 SQL 数据库
使用SQL创建视图和存储过程
使用SQL创建视图和存储过程
35 0
|
7月前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
66 1
|
7月前
|
SQL 存储 数据库
创建SQL Server视图
【8月更文挑战第19天】创建SQL Server视图
76 1
|
7月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
179 0
|
7月前
|
SQL 存储 安全
SQL视图实验:创建、查询与管理技巧
在数据库管理系统中,视图(View)是一个虚拟表,其内容由查询定义

热门文章

最新文章