一、insert多條數據概述
在業務開發中,我們常常需要一次性插入多條數據。使用insert語句每次只能插入一條數據,如果需要插入大量數據的話,單獨執行insert語句肯定會影響效率。針對這種情況,我們往往會採用多種技術來一次性插入多條數據。
二、使用INSERT多條數據
在MySQL中,我們可以使用INSERT語句來一次性插入多條數據。該語句的語法格式如下:
INSERT INTO 表名 (欄位列表) VALUES (值1), (值2), ... (值n);
其中,欄位列表表示要插入的欄位名稱,VALUES後面的值要按照欄位列表的順序排列。在VALUES後面,需要使用多組括弧分別表示要插入的多個數據。
例如,我們要向user表中插入三條記錄,其語句如下:
INSERT INTO user (id, name, age) VALUES (1, '張三', 22), (2, '李四', 25), (3, '王五', 28);
這樣,就可以一次性向user表中插入三條記錄。
三、使用UNION ALL多條數據
除了使用INSERT語句之外,我們還可以使用UNION ALL語句來一次性插入多條數據。該語句的語法格式如下:
INSERT INTO 表名 (欄位列表) SELECT 值1 UNION ALL SELECT 值2 UNION ALL ... SELECT 值n;
其中,欄位列表表示要插入的欄位名稱,在每個SELECT語句中,需要指定要插入的數據。
例如,我們要向user表中插入三條記錄,其語句如下:
INSERT INTO user (id, name, age) SELECT 1, '張三', 22 UNION ALL SELECT 2, '李四', 25 UNION ALL SELECT 3, '王五', 28;
這樣,就可以一次性向user表中插入三條記錄。
四、使用LOAD DATA多條數據
除了使用SQL語句之外,我們還可以使用MySQL提供的LOAD DATA語句來一次性插入大量數據。該語句可以讀取一個文件中的數據,並將數據一次性插入到表中。語法格式如下:
LOAD DATA INFILE '文件名' INTO TABLE 表名 FIELDS TERMINATED BY '欄位分隔符' LINES TERMINATED BY '行分隔符';
其中,文件名表示要插入的數據文件,欄位分隔符表示數據文件中各個欄位之間的分隔符,行分隔符表示數據文件中各個記錄之間的分隔符。
例如,我們要向user表中插入大量數據,其語句如下:
LOAD DATA INFILE '/tmp/user.txt' INTO TABLE user FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
這樣,就可以一次性向user表中插入大量記錄。
五、小結
本文介紹了在MySQL中一次性插入多條數據的三種方式:使用INSERT語句、使用UNION ALL語句和使用LOAD DATA語句。在實際開發中,我們可以根據具體需求選擇不同的插入方式,以提高數據插入效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/207232.html