SQL 中简单视图和复杂视图的区别

原文:https://www . geesforgeks . org/SQL 中简单视图和复杂视图的区别/

先决条件–SQL |视图 A 将 SQL 中的视为一个或多个表中数据的逻辑子集。视图用于限制数据访问。视图不包含自己的数据,而是包含类似的窗口,通过该窗口可以查看或更改表中的数据。视图所基于的表称为基表。

SQL 中有两种视图:简单视图和复杂视图。简单视图只能包含一个基表。复杂视图可以在多个基表上构建。特别是,复杂的视图可以包含:联接条件、按子句分组、按子句排序。

这些类型的视图之间的主要区别是:

| 简单视图 | 复杂视图 | | 仅包含一个基表或仅由一个表创建。 | 包含多个基表或由多个表创建。 | | 我们不能使用像 MAX()、COUNT()等分组函数。 | 我们可以使用组函数。 | | 不包含数据组。 | 它可以包含多组数据。 | | DML 操作可以通过一个简单的视图来执行。 | DML 操作不能总是通过复杂视图来执行。 | | 在一个简单的视图中可以直接插入、删除和更新。 | 我们不能在复杂视图上直接应用插入、删除和更新。 | | 简单视图不包含 group by、distinct、类似 rownum 的伪列、由表达式定义的列。 | 它可以包含 group by、distinct、类似 rownum 的伪列、由表达式定义的列。 | | 不包括基表中的非空列。 | 简单视图未选择的非空列可以包含在复杂视图中。 |

参考– 视图–