视图和使用 SELECT INTO 创建的表之间的主要区别?

Posted

技术标签:

【中文标题】视图和使用 SELECT INTO 创建的表之间的主要区别?【英文标题】:Key Differences Between Views and Created Tables Using SELECT INTO? 【发布时间】:2019-11-07 20:08:40 【问题描述】:

我了解视图只是可以被视为虚拟表的已保存 SQL 查询。但是,在我看来,使用 SELECT INTO 语句创建新表和创建视图之间没有太大区别。这两种方法之间的主要区别是什么?你会在什么情况下使用其中一种?

【问题讨论】:

表和视图完全不同。视图不存储数据,它存储在其他地方。如果您更新基础表,那么视图上显示的数据也会;创建新表时不会发生这种情况。 这里的上下文是什么?您是否正在尝试解决实际问题?还是想加深你的理解? 这两个东西很像芒果和仓鼠。您正在询问两件事之间的差异,如此不同的列表几乎是无穷无尽的。现在找到这两件事之间的共同点。这是一个易于管理的列表,尽管非常短。 【参考方案1】:

让我们首先承认,通过您所说的视图,您不是在谈论索引视图。因为这些实际上是在后台使用现有表实现的。所以,我们谈论的是非索引视图。

这两种方法非常不同——事实上,它们没有任何共同之处。这很奇怪,因为你们都提到:

“视图 = 仅保存的 sql 查询” “into = 创建新表”

这不是矛盾吗? select into 的结果实际上是一个表,一个视图不是。

不知道你为什么要问这个或你想完成什么。根据我的经验,我使用 select into 来快速创建 logically 临时表,这些临时表与原始表具有相同的列,而无需键入所有列。这种创建表的方法通常不如create table 命令和随后的插入,因为不能创建索引和其他东西 - 因此它用于临时查询或作为临时实体。

【讨论】:

以上是关于视图和使用 SELECT INTO 创建的表之间的主要区别?的主要内容,如果未能解决你的问题,请参考以下文章

SELECT INTO 和 INSERT INTO SELECT

SELECT * INTO <不存在的表>-MYSQL [重复]

INSERT INTO 表 SELECT 和 SELECT INTO 表之间的性能差异 [重复]

运行 Select-into 命令为特定列的每个 UNIQUE 值创建一个新表

SQLServer视图用insert into插入,报错!!

SQL SELECT INTO 语句