MySQL INSERT INTO SELECT
转载地址 https://yuanjiaoc.com/tutorial/article/10152
在本教程中,您将学习如何使用MySQL INSERT INTO SELECT
语句向表中插入数据,其中数据来自SELECT
语句的结果。
MySQL INSERT INTO SELECT 概述
在上一篇教程中,您学习了如何使用insert
语句和values
子句中指定的列值列表将一行或多行插入到表中。
INSERT INTO table_name(c1,c2,...)VALUES(v1,v2,..);
除了在values
子句中使用行值外,还可以使用SELECT
语句的结果作为INSERT
语句的数据源。
下面举例说明INSERT INTO SELECT
语句的语法:
INSERT INTO table_name(column_list)SELECT select_list FROM another_tableWHERE condition;
在这种语法中,可以使用SELECT
语句而不是VALUES
子句。SELECT
语句可以从一个或多个表检索数据。
当您想要将其他表中的数据复制到一个表中,或者将多个表中的汇总数据复制到一个表中时,INSERT INTO SELECT
语句非常有用。
MySQL INSERT INTO SELECT 示例
首先,创建一个名为suppliers
的新表:
CREATE TABLE suppliers ( supplierNumber INT AUTO_INCREMENT, supplierName VARCHAR(50) NOT NULL, phone VARCHAR(50), addressLine1 VARCHAR(50), addressLine2 VARCHAR(50), city VARCHAR(50), state VARCHAR(50), postalCode VARCHAR(50), country VARCHAR(50), customerNumber INT, PRIMARY KEY (supplierNumber));
注意,您将在后续教程中学习如何创建新表。现在,您只需要执行这条语句来创建suppliers
表。
假设所有来自美国加州的客户都成为公司的供应商。以下查询查找位于美国加利福尼亚州的所有客户:
SELECT customerNumber, customerName, phone, addressLine1, addressLine2, city, state, postalCode, countryFROM customersWHERE country = 'USA' AND state = 'CA';
第二,使用INSERT INTO…SELECT
语句将位于美国加州的客户从customers
表插入到supplier
表:
INSERT INTO suppliers ( supplierName, phone, addressLine1, addressLine2, city, state, postalCode, country, customerNumber)SELECT customerName, phone, addressLine1, addressLine2, city, state , postalCode, country, customerNumberFROM customersWHERE country = 'USA' AND state = 'CA';
它返回以下消息,表明已成功插入 11 行。
11 row(s) affected Records: 11 Duplicates: 0 Warnings: 0
第三,通过从 suppliers
表中查询数据来验证插入:
SELECT * FROM suppliers;
来源地址:https://blog.csdn.net/hj_5346/article/details/125708368