MySQL 表和视图区别

表和视图是关系数据库环境中使用的两个基本术语。表和视图之间的区别在初学者和数据库管理员 (DBA) 之间存在争议,因为两者有一些共同点。它们之间的主要区别在于,表是由行和列组成的对象,用于在用户需要时存储和检索数据。相比之下,视图是基于 SQL 语句结果集的虚拟表,并且会在当前会话关闭时消失。在本文中,我们将讨论基于各个方面的表和视图之间的比较。

一、什么是Table 表?

Table 表由用于组织数据的行和列组成,以结构化格式存储和显示记录。它类似于电子表格应用程序中的工作表。它占据了我们系统的空间。我们需要三样东西来创建一个表:

  • 表名
  • 列/字段名称
  • 每个字段的定义

我们可以使用以下语法在MySQL中创建一个表:

CREATE TABLE [IF NOT EXISTS] table_name (    
    column_definition1,    
    column_definition2,    
    ........,    
    table_constraints    
);  

以下是Table表的主要优点:

  1. Table提供了一种将给定信息汇总为结构化形式的有效方法,有助于快速查找信息。
  2. Table允许我们以特定方式而不是在使数据更易于理解的段落中添加数据。
  3. Table可以快速搜索我们需要的数据。
  4. Table有助于使用引用约束引入各种数据之间的关系。
  5. Table可以与只允许授权人员访问数据的数据安全性相关联。 

二、什么是 View 视图?

View 视图是作为查询结果形成的虚拟/逻辑表,用于查看或操作表的某些部分。我们可以从一个或多个表创建视图的列。其内容基于基表。

视图是一个没有值的数据库对象,包含与真实表相同的行和列。它不占用我们系统的空间。

我们可以使用以下语法在 MySQL 中创建视图:

CREATE VIEW view_name AS      
SELECT columns      
FROM tables      
[WHERE conditions]; 

以下是 View视图 的主要优点:

  1. 视图通常是虚拟的,不占用系统空间。
  2. 视图使我们能够隐藏表格中的某些列。
  3. 视图简化了复杂的查询,因为它可以从多个表中提取数据并将其呈现为单个表。
  4. 视图有助于数据安全,仅向用户显示授权信息。
  5. 即使源表被重命名、拆分或重组,它也呈现出一致的、未更改的数据库结构图像。

三、表和视图 的主要区别

以下几点解释了表和视图之间的区别:

  • 表是一个数据库对象,它保存在应用程序和报告中使用的信息。另一方面,视图也是用作表的数据库对象,也可以链接到其他表。
  • 表由行和列组成,以结构化格式存储和组织数据,而视图是 SQL 语句的结果集。
  • 表由列和行构成,而视图是从数据库中提取的虚拟表。
  • 表是一个独立的数据对象,而视图通常依赖于表。
  • 该表是存在于物理位置的实际或真实表。另一方面,视图是不存在于任何物理位置的虚拟或逻辑表。
  • 表允许对存储的数据执行添加、更新或删除操作。另一方面,我们不能对视图中的任何数据执行添加、更新或删除操作。如果我们想在视图中进行任何更改,我们需要更新源表中的数据。
  • 我们不能直接替换表对象,因为它是作为物理条目存储的。相反,我们可以轻松地使用替换选项来重新创建视图,因为它是数据库服务器上运行的 SQL 语句的伪名称。

四、表与视图 详细对比

以下比较图表快速解释了它们的主要区别:

Table 表 View 视图
表格用于以行和列的形式组织数据,并以结构化的格式显示它们。它使存储的信息更易于人类理解。 视图被视为用于查看或操作部分表的虚拟/逻辑表。它是一个数据库对象,包含与真实表相同的行和列。
表是一个物理实体,这意味着数据实际上存储在表中。 视图是一个虚拟实体,这意味着数据实际上并未存储在表中。
表用于存储数据。 视图用于从表中提取数据。
表产生一个快速的结果。 视图生成的结果很慢,因为每次我们查询它时它都会渲染表中的信息。
表是一个独立的数据对象。 这取决于表。因此,我们无法在不使用表的情况下创建视图。
表允许我们执行 DML 操作。 视图将使我们能够执行 DML 操作。
直接更换表不是一件容易的事,因为它是物理存储的。 替换视图并在需要时重新创建它是一项简单的任务。
表占用系统上的空间。 视图不占用系统空间。

结论

在本文中,我们对作为两个数据库对象的表和视图进行了比较。用户不能在不使用表的情况下创建视图,因为它依赖于表。

 

热门文章

优秀文章