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