MySQL 表与视图之间的区别
表和视图是关系数据库环境中使用的两个基本术语。表和视图之间的区别在初学者和数据库管理员(DBA)之间存在争议,因为它们都有一些共同的相似之处。它们之间的主要区别是,表是一个由行和列组成的对象,用于存储和检索数据,用户需要时可以使用。相反,视图是基于 SQL 语句结果集的虚拟表,在当前会话关闭时会消失。在本文中,我们将根据不同的方面讨论表和视图之间的比较。
什么是表格?
一个表格 由用于组织数据的行和列组成 ,以结构化的格式存储和显示记录。它类似于电子表格应用程序中的工作表。它占据我们系统上的空间。创建一个表格需要三个要素:
- 表格名称
- 列/字段名称
- 每个字段的定义
我们可以使用以下语法在MySQL中创建一个表格:
CREATE TABLE [IF NOT EXISTS] table_name (
column_definition1,
column_definition2,
........,
table_constraints
);
以下是表格的主要优点:
- 它提供了一种将给定的信息汇总成结构化形式的高效方式,有助于快速找到信息。
- 它允许我们以特定的方式添加数据,而不是以段落的形式,使数据更易于理解。
- 它使我们能够 快速搜索 所需的数据。
- 它有助于使用 引用约束 来介绍各种数据之间的关系。
- 它可以与数据安全相关联,只允许授权人员访问数据。
什么是视图?
视图是一个查询的结果,形成的 虚拟/逻辑表 ,用于查看或操作表的部分。我们可以从一个或多个表中创建视图的列。其内容基于 基本表 。
视图是一个没有值的数据库对象,与真实表一样包含行和列。它在我们的系统上 不占用空间 。
我们可以使用以下语法在MySQL中创建视图:
CREATE VIEW view_name AS
SELECT columns
FROM tables
[WHERE conditions];
以下是视图的主要优点:
- 视图通常是虚拟的,不占用系统空间。
- 视图使我们能够隐藏表中的某些列。
- 它简化了复杂的查询,因为它可以从多个表中提取数据并将其展示为单个表。
- 它有助于数据安全,只向用户显示经授权的信息。
- 即使源表被重新命名、拆分或重构,它仍然呈现了数据库结构的一致且不变的图像。
表格与视图的关键区别
以下几点解释了表格和视图之间的区别:
- 表格是用于应用程序和报表中的信息的数据库对象。另一方面,视图也是作为表格使用的数据库对象,并且还可以链接到其他表格。
- 表格由行和列组成,以结构化格式存储和组织数据,而视图是SQL语句的结果集。
- 表格是带有列和行的结构化对象,而视图是从数据库中提取出来的虚拟表格。
- 表格是独立的数据对象,而视图通常依赖于表格。
- 表格是存在于物理位置的实际表格,而视图是不存在于任何物理位置的虚拟表格。
- 表格允许对存储的数据进行添加、更新或删除操作。而视图上无法执行添加、更新或删除操作的任何数据。如果我们想对视图进行任何更改,需要在源表中更新数据。
- 我们无法直接替换表格对象,因为它存储为物理条目。相反,我们可以轻松使用替换选项重新创建视图,因为它是在数据库服务器上运行的SQL语句的伪名称。
表格 vs 视图对比表
以下对比表以快速方式解释了它们的主要区别:
SN | 表格 | 视图 |
---|---|---|
1. | 表格是用来以行和列的形式组织数据并以结构化的格式显示它们的,它使得存储的信息对人类更易理解。 | 视图被视为用于查看或操作表的虚拟/逻辑表,它是一个包含行和列的数据库对象,与实际表相同。 |
2. | 表格是一个实体,这意味着数据实际上存储在表中。 | 视图是一个虚拟实体,这意味着数据实际上没有存储在表中。 |
3. | 它用于存储数据。 | 它用于从表中提取数据。 |
4. | 它生成快速结果。 | 视图生成较慢的结果,因为它每次查询都要从表中呈现信息。 |
5. | 它是一个独立的数据对象。 | 它依赖于表。因此,我们不能不使用表创建视图。 |
6. | 表格允许我们执行DML操作。 | 视图将使我们能够执行DML操作。 |
7. | 直接替换表格并不是一件容易的事情,因为它涉及到物理存储。 | 替换视图并在需要时重新创建它是一件容易的事情。 |
8. | 它在系统上占用空间。 | 它不会占用系统空间。 |
结论
在这篇文章中,我们对两个数据库对象——表和视图进行了比较。用户不能在没有使用表的情况下创建视图,因为视图依赖于表。