一、语法结构
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/n/332827.html