首页 >数据库 >mysql教程 >如何使用标准 SQL 语法将数据从一个表插入到另一个表?

如何使用标准 SQL 语法将数据从一个表插入到另一个表?

DDD
DDD原创
2025-01-24 03:52:09897浏览

How to Insert Data from One Table to Another Using Standard SQL Syntax?

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,包括:

  • 甲骨文
  • 微软 SQL Server
  • MySQL
  • PostgreSQL
  • SQLite
  • Teradata
  • DB2
  • Sybase
  • Vertica
  • HSQLDB
  • H2
  • 亚马逊红移
  • SAP HANA
  • Google Cloud Spanner

说明性示例

假设我们有一个“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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn