在本教程中,您将了解一个叫作数据库视图的新数据库对象。我们将讨论使用数据库视图的优点和缺点。
数据库视图是一个虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询。 因为数据库视图类似于数据库表,它由行和列组成,因此可以针对数据库查询数据。大多数数据库管理系统(包括MySQL)允许您通过数据库视图,满足一些先决条件并更新基础表中的数据。
数据库视图是动态的,因为它与物理模式无关。数据库系统将数据库视图存储为具有连接的SQL SELECT语句。当表的数据更改时,视图也反映这些数据的更改。
数据库视图的优点
以下是使用数据库视图的优点。
- 数据库视图允许您简化复杂的查询:数据库视图是由与许多基础表相关联的SQL语句定义。您可以使用数据库视图来隐藏底层表的复杂性 - 对用户和外部应用程序。通过数据库视图,您只需使用简单的SQL语句,而不必使用多个连接的复杂SQL语句。
- 数据库视图有助于限制对特定用户的数据访问。您可能不希望所有用户都能查询敏感数据的子集。这就可以使用数据库视图仅向特定用户组公开非敏感数据。
- 数据库视图提供额外的安全层。安全性是任何关系数据库管理系统的重要组成部分。数据库视图允许您创建只读视图,以向特定用户公开只读数据。用户只能在只读视图中检索数据,但无法更新。
- 数据库视图启用计算列。数据库表不应该有计算的列,但是数据库视图应该有。假设在
order_detail
表中有quantity_order
(已订购产品的数量)和price
(每个产品项目的价格)列。 但是,order_detail
没有存储订单的每个订单项的总销售额。如果有,数据库模式不能是一个好的设计。在这种情况下,您可以创建一个名为total
的计算列,它是quantity_order
和price_each
的乘积,用于表示计算结果。当从数据库视图查询数据时,计算列的数据是即时计算的。 - 数据库视图可向后兼容。假设您有一个中央数据库,许多应用程序正在使用它。 有一天,您决定重新设计数据库以适应新的业务需求。需要删除一些表并创建新表,并且不希望这些更改影响其他应用程序。在这种情况下,您可以创建与将要删除的旧表相同的视图。
数据库视图的缺点
除了上述优点,使用数据库视图有几个缺点:
- 性能:从数据库视图查询数据可能很慢,特别是如果视图是基于其他视图创建的。
- 表依赖关系:基于数据库的基础表来创建视图。每当要更改与视图相关联的那些表的结构时,您可能还必须更改视图。
在本教程中,您已经了解了数据库视图是什么。 我们还讨论了使用数据库视图的优点和缺点,以便您可以在数据库设计中有效地应用它们。
相关教程
- MySQL中的视图
- 在MySQL中创建视图
- 创建MySQL可更新视图
-
管理MySQL中的视图
MySQL学习QQ群:418407075