当前位置: 首页 > 面试题库 >

插入…值(SELECT…FROM…)

丁经国
2023-03-14
问题内容

我正在尝试INSERT INTO使用另一个表的输入创建一个表。尽管对于许多数据库引擎来说这是完全可行的,但是我似乎总是很难记住当今SQL引擎的正确语法(MySQL,Oracle,SQL Server,Informix和DB2)。

是否有来自SQL标准(例如SQL-92)的Silver-bullet语法,该语法可让我插入值而无需担心基础数据库?


问题答案:

尝试:

INSERT INTO table1 ( column1 )
SELECT  col1
FROM    table2

这是标准的ANSI SQL,可以在任何DBMS上使用

它绝对适用于:

  • Oracle
  • MS SQL Server
  • MySQL
  • Postgres
  • SQLite v3
  • Teradata
  • DB2
  • Sybase
  • Vertica
  • HSQLDB
  • H2
  • AWS RedShift
  • SAP HANA
  • Google Spanner


 类似资料:
  • 问题内容: 我有一个查询,使用选择插入: 是否可以仅为插入内容选择“名称,位置”,并将gid设置为查询中的其他内容? 问题答案: 是的,绝对可以,但是请检查您的语法。 您可以放置与其位置相同类型的常量,而不只是1。而且,我只是弥补了价值。

  • 问题内容: 可以说在我的代码中我有用户名和一个值。现在,我需要将其保存在数据库中,但首先需要获取与该用户名相对应的ID,因为此表以pk / fk链接到users表。我该怎么做?我知道您可以执行INSERT(blah)SELECT等操作,但是看起来像是直接复制,我需要将SELECT的结果与fk列一起插入值。 用户表:[UserID(pk),用户名] 阿凡达表:[UserID(fk),AvatarUR

  • 问题内容: 使用插入到触发(选择* …) 我正在尝试。 不起作用… 这项工作。 Trigger 问题答案: 这项工作。 因此,如果适合您,请尝试以下操作: 如果要从另一张表中选择一个或多个行,则必须使用以下语法:

  • 问题内容: 想知道是否有一种方法可以将一行中的一行插入另一张表中,但一列除外? 对于有限的列数,这当然很容易,但是当列数增加时,列出所有列会很麻烦。 我在想以下方面的事情: 一种可能是复制一行并执行和更新,但是由于索引或其他原因,这不是一种选择。 有任何想法吗? 编辑:这是DB2 v10,但问题出在纯出于好奇。只是想知道是否有可能… 问题答案: 使用Oracle

  • 问题内容: 我正在尝试像这样从C#向我的数据库中插入一个空值: DBNull.Value是日期可以在的地方,但我希望它等于null,但它似乎将默认日期设置为1900 … 问题答案: 改成: 返回空字符串,但您希望改为null。 但是,这种构建查询的方式可能会导致问题。例如,如果您的字符串之一包含引号’,则结果查询将引发错误。更好的方法是使用参数并在SqlCommand对象上进行设置:

  • 这只是出于好奇,而我当时正在练习数组插入以图好玩。下面的代码中有一个问题,为什么给我一些垃圾值,但将其设置为就解决了这个问题。逻辑上他们也是这样做的,但我只是想知道它是否与L值和R值引用有关?