什么是数据库的视图?

Sherwin.Wei Lv7

什么是数据库的视图?

回答重点

数据库的视图是一个虚拟表,它并不存储实际的数据,而是通过查询其他表的数据来生成的。视图可以简化复杂的查询、增强数据安全性(限制访问某些数据)以及提供数据的不同表示方式。

它可以包含一个或多个表的数据,并且可以对这些数据进行筛选、计算、排序等操作。

扩展知识

视图的作用

  • 简化复杂查询:视图可以将复杂的查询封装成一个简单的视图,使得用户在查询数据时更加方便。
  • 安全性:通过视图可以限制用户访问特定的表和列,保护敏感数据。例如,只允许用户查看某些列而不是整个表。
  • 数据抽象:视图提供了一种数据抽象层,用户可以通过视图获取需要的数据,而不必关心底层表的结构和关系。
  • 可重用性:定义一次视图,可以在多个查询中重复使用,减少代码冗余。

下面是一个实际的视图示例,展示如何创建和使用视图来简化查询。

视图使用示例

假设有一个数据库中有两个表:employees(员工表)和 departments(部门表)。

employees 表结构:

employee_id first_name last_name department_id salary
1 John Doe 1 60000
2 Jane Smith 2 75000
3 Mike Johnson 1 50000

departments 表结构:

department_id department_name
1 Sales
2 Marketing

创建视图

可以创建一个视图 employee_salaries,用于展示员工的全名及其对应的部门和薪资。

1
2
3
4
5
6
7
8
9
10
CREATE VIEW employee_salaries AS
SELECT
e.employee_id,
CONCAT(e.first_name, ' ', e.last_name) AS full_name,
d.department_name,
e.salary
FROM
employees e
JOIN
departments d ON e.department_id = d.department_id;

使用视图

现在,可以通过查询视图来获取员工的全名、部门和薪资信息,而不需要每次都写复杂的 JOIN 查询:

1
SELECT * FROM employee_salaries;

查询结果

运行上述查询会得到以下结果:

employee_id full_name department_name salary
1 John Doe Sales 60000
2 Jane Smith Marketing 75000
3 Mike Johnson Sales 50000
Comments