从 SELECT 查询创建视图
在这一步中,你将学习如何在 MySQL 中从 SELECT
查询创建视图。视图是基于 SQL 语句结果集的虚拟表。视图对于简化复杂查询、隐藏数据复杂性以及为数据访问提供一定程度的抽象非常有用。
首先,让我们连接到 MySQL 服务器。在 LabEx 虚拟机中打开一个终端。你应该已经位于 ~/project
目录下。
mysql -u root -p
当提示输入密码时,输入 root 密码。如果你还没有设置 root 密码,直接按回车键即可。
现在,让我们创建一个名为 company
的数据库。
CREATE DATABASE company;
接下来,切换到 company
数据库。
USE company;
让我们创建一个名为 employees
的简单表,并插入一些示例数据。
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
salary DECIMAL(10, 2),
department VARCHAR(50)
);
INSERT INTO employees (id, first_name, last_name, salary, department) VALUES
(1, 'John', 'Doe', 60000.00, 'Sales'),
(2, 'Jane', 'Smith', 75000.00, 'Marketing'),
(3, 'Robert', 'Jones', 50000.00, 'Sales'),
(4, 'Emily', 'Brown', 80000.00, 'Engineering'),
(5, 'Michael', 'Davis', 65000.00, 'Marketing');
现在,让我们创建一个名为 sales_employees
的视图,该视图仅显示来自“销售”部门的员工。
CREATE VIEW sales_employees AS
SELECT id, first_name, last_name, salary
FROM employees
WHERE department = 'Sales';
此语句创建了一个名为 sales_employees
的视图。该视图从 employees
表中选择 id
、first_name
、last_name
和 salary
列,但仅选择 department
为 'Sales' 的行。
要验证视图是否已创建,你可以描述它:
DESCRIBE sales_employees;
此命令将显示 sales_employees
视图的结构,类似于描述表的结构。
你还可以像查询常规表一样查询该视图:
SELECT * FROM sales_employees;
这将根据 employees
表中的数据显示销售部门的所有员工。
+------+------------+-----------+----------+
| id | first_name | last_name | salary |
+------+------------+-----------+----------+
| 1 | John | Doe | 60000.00 |
| 3 | Robert | Jones | 50000.00 |
+------+------------+-----------+----------+
2 rows in set (0.00 sec)
你现在已成功从 SELECT
查询创建了一个视图。