Mysql中插入数据语句

在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 intoinsert 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
    
    原文作者:余生无解
    原文地址: https://www.jianshu.com/p/8913d6db3f6c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞