SQL INSERT及批量的幾種方式總結

1、常規INSERT寫法

INSERT INTO …  VALUES (…);

INSERT INTO 表名( `字段1`, `字段2`) VALUES ('字段1的值', '字段2的值');

2、SELECT語句返回值INSERT

INSERT INTO …VALUES (…, (select …));

INSERT INTO 表名1(`字段1`, `字段2`) 
VALUES (字段1的值, (select 查詢字段 from 表名2 where 條件));

也可以變化為查詢多個字段,再新增數據

INSERT INTO …VALUES (select …);

INSERT IGNORE INTO `表名1` (
  `字段1`,
  `字段2`
)
SELECT
  `字段3` AS 字段1,
  '字段4' AS 字段2
FROM `表名2` WHERE 條件

註意:查詢出來必須隻有一個行

3、批量多行INSERT

INSERT INTO … VALUES (…), (…),(…);

INSERT INTO 表名(字段1, 字段2)
VALUES (字段1數據, 字段2數據),
       (字段1數據, 字段2數據),
       (字段1數據, 字段2數據);

或者多行查詢後新增,

INSERT INTO … VALUES (…,select…), (…,select…),(…,select…);

INSERT INTO 表名1(`字段1`, `字段2`) 
VALUES 
(字段1的值, (select 查詢字段 from 表名2 where 條件)),
(字段1的值, (select 查詢字段 from 表名3 where 條件)),
(字段1的值, (select 查詢字段 from 表名4 where 條件));

或者使用union all:

INSERT INTO … 

(SELECT …,(select …) ) union all
(SELECT …,(select …) ) union all
(SELECT …,(select …) );

INSERT INTO 表名1 (`字段1`, `字段2`)
(SELECT 字段1的值,(select 查詢字段 from 表名2 where 條件) FROM 表名3 WHERE 條件) union all
(SELECT 字段1的值,(select 查詢字段 from 表名2 where 條件) FROM 表名3 WHERE 條件) union all
(SELECT 字段1的值,(select 查詢字段 from 表名3 where 條件) FROM 表名4 WHERE 條件);

分享一下、日常使用到幾種寫法,如有錯誤,歡迎指正。

附:插入檢索出的數據

INSERT INTO Customers(ID,
name,
address,
city,
country)
SELECT ID,
name,
address,
city,
country
from Custnew;

總結

到此這篇關於SQL INSERT及批量的幾種方式的文章就介紹到這瞭,更多相關SQL INSERT批量方式內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: