视图在SQL中作为来自一个或多个表的数据的逻辑子集。视图用于限制数据访问。视图不包含自己的数据, 而包含类似的窗口, 通过该窗口可以查看或更改表中的数据。视图所基于的表称为BASE表。
SQL中有两种视图类型:简单视图和复杂视图。简单的意见只能包含一个基本表。复杂的观点可以在多个基表上构建。特别是, 复杂的视图可以包含:连接条件, group by子句, order by子句。
这些类型的视图之间的主要区别是:
简单检视 | 复杂视图 |
---|---|
仅包含一个基本表或仅由一个表创建。 | 包含多个基本表或由多个表创建。 |
我们不能使用MAX(), COUNT()等组函数。 | 我们可以使用组函数。 |
不包含数据组。 | 它可以包含数据组。 |
DML操作可以通过简单的视图执行。 | DML操作不能总是通过复杂的视图执行。 |
INSERT, DELETE和UPDATE可以在简单的视图上直接进行。 | 我们不能直接在复杂的视图上应用INSERT, DELETE和UPDATE。 |
简单视图不包含分组, 不同的伪列(如rownum), 列则不受表达式约束。 | 它可以包含group by, 不同的伪列(如rownum), 按表达式定义的列。 |
不包括基表中的NOT NULL列。 | 简单视图未选择的NOT NULL列可以包含在复杂视图中。 |
【SQL中简单视图和复杂视图之间的区别】查看– orafaq
推荐阅读
- 同时和分层访问存储组织之间的区别
- Servlet和JSP之间有什么区别()
- Java中Scanner和BufferReader类之间的区别
- Docker命令RUN、CMD和ENTRYPOINT之间的区别
- 可路由和不可路由协议之间的区别
- C#中Ref和Out关键字之间的区别
- C#中的readonly和const关键字之间的区别
- RDBMS和ORDBMS之间有哪些区别()
- 数据库|做 SQL 性能优化真是让人干瞪眼