在mysql中insert into、insert into … set …、insert ignore into、replace into都是插入数据的语句。
insert into 的 SQL语法:
- 添加一行数据(如果数据时字符型,需要加上单/双引号)
INSERT INTO table_name (field1,field2,...)
VALUES (value1,value2,...);
这种方式是指定字段添加对应的数据。
- 添加一行数据(给当前表中所有字段都加上数据)
INSERT INTO table_name VALUES (value1,...)
这里需要给所有字段都加上数据(id主键自增可以使用NULL代替)。
-
table_name
:表名称。(mysql推荐给表名称、字段加上反引号(“),防止与mysql中的关键字冲突) - INSERT INTO 可以插入相同重复的数据,而INSERT IGNORE INTO不允许插入相同的重复数据。
insert into … set …的 SQL 语法:
- insert into … set … 作为 insert into语法的扩展插入一行数据。(该语法在php中有时使用起来比较方便)
INSERT INTO table_name SET field=value,field=value...
- 使用举例:
INSERT INTO test SET `name`='hello',`age`=20;
Insert ignore into 的 SQL语法:
- insert ignore into 和 insert into的用法一致。INSERT IGNORE会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。
insert into test(`name`,`age`) values('nihao',29);
-> Query OK, 1 row affected (0.00 sec)
insert ignore into test(`name`,`age`) values('nihao',29);
-> Query OK, 0 row affected (0.00 sec)
INSERT IGNORE INTO当插入数据时,在设置了记录的唯一性后,如果插入重复数据,将不返回错误,只以警告形式返回。
replace into 的 SQL语法:
- repalce的运行和INSERT很相似。replace参考
- 如果存在primary 或 unique相同的记录,则先删除掉。再插入新记录。(假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。 )
- 除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。
- replace 的三种形式:repalce参看文档
1.replace into table_name (field,…) values(value,…)
2.replace into table_name (filed,…) select …
3.replace into table_name set field=value,…replace into test (`name`,`age`) values ('ni',25); replace into test (`name`,`age`) select 'ss',20 replace into test set `name`='us',`age`=24