MySQL新增修改删除语句大全

时间:2025-01-30 14:12:39

目录

    • 一、新增语句
      • 1、新增单条数据
      • 2、批量插入多条数据
      • 3、将老表数据插入到新表
      • 4、插入数据时如果遇到键冲突,则执行更新操作
    • 二、修改语句
      • 1、更新全部数据
      • 2、根据条件更新数据
    • 三、删除语句
      • 1、普通删除表全部数据(会记录事务日志可回滚)
      • 2、快速删除表全部数据(不计入事务日志无法回滚)
      • 3、根据条件删除表数据

一、新增语句

1、新增单条数据

# 全量新增 必须包含所有字段
INSERT INTO 表名 VALUES (1,2,3,...);
# 指定新增数据对应列名
INSERT INTO 表名(1,2,3,...) VALUES (1,2,3,...);

2、批量插入多条数据

INSERT INTO 表名(1,2,3,...) 
VALUES
(1,2,3,...),
(1,2,3,...),
(1,2,3,...),
...

3、将老表数据插入到新表

# 全量插入
INSERT INTO 新表名 SELECT * FROM 老表名 WHERE 1=1;

# 指定字段插入
INSERT INTO 新表名(1,2,3,...) SELECT1,2,3,... FROM 老表名 WHERE 1=1;

4、插入数据时如果遇到键冲突,则执行更新操作

INSERT INTO 表名(1,2,3,...) VALUES (1,2,3,...) ON DUPLICATE KEY UPDATE1 =1,2 =2;

二、修改语句

1、更新全部数据

UPDATE 表名 SET 列名1 =1, 列名2 =2;

2、根据条件更新数据

UPDATE 表名 SET 列名1 =1, 列名2 =2 WHERE 条件;

三、删除语句

1、普通删除表全部数据(会记录事务日志可回滚)

DELETE FROM 表名;

2、快速删除表全部数据(不计入事务日志无法回滚)

TRUNCATE TABLE 表名;
  • 需要注意的是,DELETE 和 TRUNCATE 的区别在于:
    DELETE 是 DML (Data Manipulation Language) 语句,每次删除一行并记录在事务日志中,可以进行回滚操作TRUNCATE是 DDL (Data Definition Language) 语句,一次性删除整个表的数据并不记录在事务志中,无法回滚操作。它比DELETE 语句效率更高,但无法触发相关的触发器 (trigger)
    在使用任何删除语句之前,请务必谨慎,并确保备份了重要的数据,以免误删或丢失数据.

3、根据条件删除表数据

DELETE FROM 表名 WHERE 条件;