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