一、INSERT和REPLACE
INSERT和REPLACE语句的功用都是向表中插入新的数据。这两条语句的语法类似。它们的首要区别是如何处理重复的数据。
1. INSERT的普通用法
MySQL中的INSERT语句和规范的INSERT不太一样,在规范的SQL语句中,一次插入一条记载的INSERT语句只需一种方式。
INSERT INTO tablename(列名…) VALUES(列值);
而在MySQL中尚有另外一种方式。
INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;
第一种方法将列名和列值分开了,在运用时,列名必需和列值的数一致。如下面的语句向users表中插入了一条记载:
INSERT INTO users(id, name, age) VALUES(123, '姚明', 25);
第二种方法准许列名和列值成对呈现和运用,如下面的语句将发生中样的成效。
INSERT INTO users SET id = 123, name = '姚明', age = 25;
假设运用了SET方式,必需至少为一列赋值。假设某一个字段运用了省缺值(如默许或自增值),这两种方法都能够省略这些字段。如id字段上运用了自增值,上面两条语句能够写成如下方式:
INSERT INTO users (name, age) VALUES('姚明',25);
INSERT INTO uses SET name = '姚明', age = 25;
MySQL在VALUES上也做了些改变。假设VALUES中什么都不写,那MySQL将运用表中每一列的默许值来插入新记载。
INSERT INTO users () VALUES();
假设表名后什么都不写,就表示向表中一切的字段赋值。运用这种方式,不只在VALUES中的值要和列数一致,并且顺序不能颠倒。 INSERT INTO users VALUES(123, '姚明', 25);
假设将INSERT语句写成如下方式MySQL将会报错。
INSERT INTO users VALUES('姚明',25);
2. 运用INSERT插入多条记载
看到这个标题也许群众会问,这有什么好说的,调用多次INSERT语句不就能够插入多条记载了吗!但运用这种方法要添加服务器的负荷,由于,执行每一次SQL服务器都要一样对SQL执行分析、优化等操作。幸亏MySQL提供了另一种处理方案,就是运用一条INSERT语句来插入多条记载。这并不是规范的SQL语法,因而只好在MySQL中运用。
INSERT INTO users(name, age) VALUES('姚明', 25), ('比尔.盖茨', 50), ('火星人', 600);