一、語法結構
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
INSERT語句可以插入指定的列和值,如果未指定列,那麼就必須為表中的每個列提供值,插入的數據將行列一一對應。如果指定了列,則可以插入不完整的行,每種情況下,插入的數據必須是與表中定義的每個列的數據類型相匹配的。
二、插入單行數據
INSERT INTO user (id, name, age) VALUES (1, 'Lucy', 18);
以上示例中,向user表中插入了一行數據,包括id、name和age三列,分別為1、’Lucy’和18。
如果不指定列名,則需要同時插入表中每一列的值。可以使用null值佔位符來佔位一個或多個值。
INSERT INTO user VALUES (2, 'Jack', 20, 'male');
以上示例中,向user表中插入了一行數據,分別為2、’Jack’、20和’male’。
三、插入多行數據
INSERT INTO user (id, name, age) VALUES (3, 'Amy', 22), (4, 'Tom', 26), (5, 'Anne', 21);
以上示例中,向user表中插入了三行數據,分別為3、’Amy’、22;4、’Tom’、26;5、’Anne’、21。
四、從另一個表插入數據
INSERT INTO user SELECT * FROM temp_user;
以上示例中,從temp_user表中讀取所有行和列的數據,然後將其插入到user表中。
也可以通過指定列名來插入數據。需要保證兩個表的列數和數據類型匹配。
INSERT INTO user (id, name) SELECT id, name FROM temp_user;
以上示例中,從temp_user表中讀取id和name列的數據,然後將其插入到user表中相應的列中。
五、忽略重複的行
當插入數據時,可能會遇到重複的行,如果不希望插入重複的行,則可以使用IGNORE關鍵字。
INSERT IGNORE INTO user (id, name) VALUES (1, 'Lucy');
以上示例中,如果user表中已經存在id為1的行,則插入操作會被忽略,不會產生警告或錯誤。
六、替換重複的行
除了忽略重複的行,還可以通過REPLACE關鍵字來替換重複的行。
REPLACE INTO user (id, name) VALUES (1, 'John');
以上示例中,如果user表中已經存在id為1的行,則新的數據將會替換掉舊的數據,如果表中不存在id為1的行,則插入操作會正常執行。
七、批量插入
如果需要插入大量數據,則可以將數據寫入文件,然後使用LOAD DATA關鍵字來批量插入。
LOAD DATA INFILE '/path/to/data.txt' INTO TABLE user;
以上示例中,從/data.txt文件中讀取數據,並將其插入到user表中。
原創文章,作者:MZIPS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332827.html