INSERT INTO ... SELECT
是 SQL 中用于从一个或多个表中复制数据并将其插入到另一个表中的语句。这种语句特别有用,当你想要基于某个查询的结果来填充或更新一个表时。
下面是 INSERT INTO ... SELECT
语句的基本语法:
INSERT INTO target_table (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM source_table
WHERE condition;
target_table
是你想要插入数据的表。source_table
是你从中复制数据的表。column1, column2, column3, ...
是target_table
中的列名,用于指定要插入哪些数据。WHERE condition
是可选的,用于指定从source_table
中选择哪些行。
示例
假设我们有两个表:employees
和 new_employees
。我们想要将 employees
表中所有年龄大于 30 的员工复制到 new_employees
表中。
首先,假设 employees
表的结构如下:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(255),
age INT
);
假设 new_employees
表的结构与 employees
相同(但在实际应用中,你可能只想要某些列)。
现在,我们可以使用 INSERT INTO ... SELECT
语句来复制数据:
INSERT INTO new_employees (id, name, age)
SELECT id, name, age
FROM employees
WHERE age > 30;
这条语句将从 employees
表中选择所有年龄大于 30 的员工的 id
、name
和 age
列,并将这些数据插入到 new_employees
表中。