INSERT增加

方式1:VALUES的方式添加

使用这种语法一次只能向表中插入一条数据。

  1. INSERT INTO 表名
  2. VALUES (value1,value2,....);
  1. INSERT INTO 表名(column1 , column2, …, columnn)
  2. VALUES (value1 ,value2, …, valuen);
  1. INSERT INTO 表名[(column1 , column2, …, columnn)]
  2. VALUES
  3. (value1 ,value2, …, valuen),
  4. (value1 ,value2, …, valuen),
  5. ……
  6. (value1 ,value2, …, valuen);

使用INSERT同时插入多条记录时,MySQL会返回一些在执行单行插入时没有的额外信息,这些信息的含义如下:

  • Records:表明插入的记录条数。
  • Duplicates:表明插入时被忽略的记录,原因可能是这些记录包含了重复的主键值。
  • Warnings:表明有问题的数据值,例如发生数据类型转换。

    一个同时插入多行记录的INSERT语句等同于多个单行插入的INSERT语句,但是多行的INSERT语句在处理过程中效率更高。 因为MySQL执行单条INSERT语句插入多行数据比使用多条INSERT语句快,所以在插入多条记录时最好选择使用单条INSERT语句的方式插入。

方式2:将查询结果插入到表中

  1. INSERT INTO 目标表名 [(tar_column1 ,tar_column2, , tar_columnn)]
  2. SELECT (src_column1, src_column2, ,src_columnn)
  3. FROM 源表名
  4. [WHERE condition]
  • 在 INSERT 语句中加入子查询。
  • 不必书写VALUES子句。
  • 子查询中的值列表应与 INSERT 子句中的列名对应。

    UPDATE更新

    1. UPDATE 表名
    2. SET column1=value1, column2=value2, , column=valuen
    3. [WHERE condition]
  • 可以一次更新多条数据。

  • 如果需要回滚数据,需要保证在DML前,进行设置:SET AUTOCOMMIT = FALSE;

    DELETE删除

    1. DELETE FROM 表名
    2. [WHERE condition];