SQL:在表之间复制数据
一项常见的 SQL 任务涉及将数据从一个表传输到另一个表。 虽然不同数据库系统的特定语法可能略有不同,但广泛兼容的方法使用 INSERT INTO ... SELECT
语句。
数据插入的标准 SQL 语法
以下语法提供了跨各种数据库管理系统 (DBMS) 的高度兼容性:
<code class="language-sql">INSERT INTO target_table (column1, column2, ...) SELECT source_column1, source_column2, ... FROM source_table [WHERE condition];</code>
这是一个细分:
target_table
:接收新数据的表。column1, column2, ...
:target_table
中将插入数据的列。 订单必须与 SELECT
语句匹配。source_column1, source_column2, ...
:source_table
中提供数据的列。 数据类型应与相应的 target_table
列兼容。source_table
:提供数据的表。WHERE condition
(可选):在插入之前过滤 source_table
中的数据。 仅复制满足条件的行。数据库管理系统兼容性
此 INSERT INTO ... SELECT
方法通常适用于各种 DBMS,包括:
说明性示例
假设我们有一个“employees”表和一个“department_summary”表。 要使用员工部门名称填充 department_summary
:
<code class="language-sql">INSERT INTO department_summary (department_name) SELECT department FROM employees;</code>
这会将 employees
表中的所有唯一部门名称插入到 department_name
表的 department_summary
列中。 请注意,重复的部门名称只会插入一次。 如果您需要以不同的方式处理重复项,则需要添加额外的逻辑(例如,使用 GROUP BY
和聚合函数)。
以上是如何使用标准 SQL 语法将数据从一个表插入到另一个表?的详细内容。更多信息请关注PHP中文网其他相关文章!