SQL INSERT INTO SELECT 语句
通过 SQL,您可以从一个表复制信息到另一个表。
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。
SQL INSERT INTO SELECT 语句
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
SQL INSERT INTO SELECT 语法
我们可以从一个表中复制所有的列插入到另一个已存在的表中:
INSERT
INTO
table2
SELECT * FROM table1;
SELECT * FROM table1;
或者我们可以只复制指定的列插入到另一个已存在的表中:
INSERT
INTO
table2
( column_name ( s ) )
SELECT column_name ( s )
FROM table1;
( column_name ( s ) )
SELECT column_name ( s )
FROM table1;
演示数据库
在本教程中,我们将使用 yssmx 样本数据库。
下面是选自 "Websites" 表的数据:
+----+--------------+---------------------------+-------+---------+ | id_name _url _alexa_country | +----+--------------+---------------------------+-------+---------+ | 1 _Google _https://www.google.cm/ _1 _USA | | 2 _淘宝 _https://www.taobao.com/ _13 _CN | | 3 _云搜索MX教程 _/ _4689 _CN | | 4 _微博 _http://weibo.com/ _20 _CN | | 5 _Facebook _https://www.facebook.com/_3 _USA | | 7 _stackoverflow_http://stackoverflow.com/_ 0_IND | +----+---------------+---------------------------+-------+---------+
下面是 "apps" APP 的数据:
mysql> SELECT * FROM apps; +----+------------+-------------------------+---------+ | id_app_name _url _country | +----+------------+-------------------------+---------+ | 1_QQ APP _http://im.qq.com/ _CN | | 2_微博 APP_http://weibo.com/ _CN | | 3_淘宝 APP_https://www.taobao.com/_CN | +----+------------+-------------------------+---------+ 3 rows in set (0.00 sec)
SQL INSERT INTO SELECT 实例
复制 "apps" 中的数据插入到 "Websites" 中:
实例
INSERT
INTO
Websites
(
name
,
country
)
SELECT app_name , country FROM apps;
SELECT app_name , country FROM apps;
只复 id=1 的数据到 "Websites" 中:
实例
INSERT
INTO
Websites
(
name
,
country
)
SELECT app_name , country FROM apps
WHERE id = 1 ;
SELECT app_name , country FROM apps
WHERE id = 1 ;