MySQL 表与视图之间的区别

MySQL 表与视图之间的区别

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

MySQL 表与视图之间的区别

什么是表格?

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

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

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

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

以下是表格的主要优点:

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

什么是视图?

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

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

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

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

以下是视图的主要优点:

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

表格与视图的关键区别

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

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

表格 vs 视图对比表

以下对比表以快速方式解释了它们的主要区别:

SN 表格 视图
1. 表格是用来以行和列的形式组织数据并以结构化的格式显示它们的,它使得存储的信息对人类更易理解。 视图被视为用于查看或操作表的虚拟/逻辑表,它是一个包含行和列的数据库对象,与实际表相同。
2. 表格是一个实体,这意味着数据实际上存储在表中。 视图是一个虚拟实体,这意味着数据实际上没有存储在表中。
3. 它用于存储数据。 它用于从表中提取数据。
4. 它生成快速结果。 视图生成较慢的结果,因为它每次查询都要从表中呈现信息。
5. 它是一个独立的数据对象。 它依赖于表。因此,我们不能不使用表创建视图。
6. 表格允许我们执行DML操作。 视图将使我们能够执行DML操作。
7. 直接替换表格并不是一件容易的事情,因为它涉及到物理存储。 替换视图并在需要时重新创建它是一件容易的事情。
8. 它在系统上占用空间。 它不会占用系统空间。

结论

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程