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中文網其他相關文章!