首页 >> 经验问答 >

问mysql 增删改查 4 条命令 基础语法详解

2026-11-09 18:22:30

答

MySQL 增删改查 4 条命令就是 insert 插入数据 delete 删除数据 update 更新数据 select 查询数据,这四条属于 DML 数据操作语言,是 MySQL 日常开发最核心的基础语句,所有业务读写几乎都是围绕这四条命令展开,很多新手只会写最简写法,但是不理解条件匹配字段约束事务影响行数这些细节,执行之后出现全表误删更新报错,这四条命令必须在已经登录 MySQL,并且切换到目标数据库之后才能运行,每条 SQL 结尾都需要加分号,InnoDB 引擎下这四条命令默认会自动提交,也可以放在事务里统一提交或者回滚,下面深度讲解每条命令语法常用写法注意事项和进阶用法。

四条命令总览表

操作类型命令关键字核心作用
增insert向数据表插入新的数据行
删delete按条件删除数据表里面的数据行
改update按条件修改数据表里面已有字段的值
查select从数据表读取筛选数据

增 insert 插入命令

基础语法

insert into 表名 (字段 1 字段 2) values (值 1 值 2);

批量插入写法

insert into 表名 (字段 1 字段 2) values (值 1 值 2),(值 3 值 4),(值 5 值 6);

插入查询结果写法

insert into 表名 (字段 1 字段 2) select 字段 1 字段 2 from 来源表 where 条件;

深度要点

字段顺序和值的顺序必须一一对应,字段类型要匹配,主键唯一约束不能重复,如果字段设置 not null,插入的时候不能省略该字段,否则报错。批量插入性能远高于多次单条 insert,大数据导入优先使用批量写法。

删 delete 删除命令

基础语法

delete from 表名 where 条件;

深度要点

where 条件是关键,如果省略 where,会把整张表所有数据全部删除,生产环境属于高危操作。delete 属于 DML 语句,执行之后可以事务回滚,只会删除数据,不会重置自增主键,自增 ID 会继续往后累加。如果想要清空整张表并且重置自增 ID,可以使用 truncate,但是 truncate 不属于增删改查 4 条命令里面的 delete。

改 update 更新命令

基础语法

update 表名 set 字段 1 = 新值 1 字段 2 = 新值 2 where 条件;

深度要点

set 后面可以同时修改多个字段,多个字段之间用逗号分隔,同样不能漏掉 where 条件,一旦漏掉就会全表所有行都被修改。执行 update 之前,推荐先用 select 语句执行相同 where 条件,确认匹配的数据是不是预期数据,避免误更新。update 会触发行锁,大表更新会长时间锁表,影响业务读写。

查 select 查询命令

基础语法

select 字段 1 字段 2 from 表名 where 条件;

全表查询写法

select from 表名;

进阶常用子句

where 筛选条件

group by 分组

having 分组之后过滤

order by 排序

limit 限制返回行数

深度要点

select 会读取全部字段,大表查询性能差,生产尽量明确写出需要查询的字段。where 里面支持比较运算符 and or like 模糊查询 in 范围查询,group by 一般搭配聚合函数 count sum avg max min 使用。

执行前置步骤

1 启动 MySQL 数据库服务

2 使用 mysql 命令登录数据库

3 执行 use 库名 切换到目标数据库

4 确认数据表已经创建完成,字段类型主键约束都已经设置好

5 在 mysql 提示符下输入对应的增删改查 4 条命令,末尾加分号回车执行

6 查看返回信息,insert update delete 会提示 affected rows 影响行数,select 会输出结果集

关键风险与进阶补充

增删改查 4 条命令在 MySQL8.0 和 5.7 基础语法保持一致,但是部分函数和隐式转换行为有差别。如果账号没有 insert delete update select 权限,执行对应的增删改查 4 条命令会直接报权限拒绝错误。开启事务之后,增删改查 4 条命令里面 insert update delete 改动的数据,在 commit 之前其他会话默认看不到,需要理解事务隔离级别带来的可见性差异。

结论

MySQL 增删改查 4 条命令就是 insert delete update select,掌握基础语法之后重点牢记 where 条件的作用,理解影响行数约束冲突事务回滚这些细节,练习的时候优先在测试表操作,养成执行 update delete 之前先用 select 校验条件的习惯,就可以熟练运用这四条核心命令完成数据表的数据读写维护。

【常见问题】

问题 1 MySQL 增删改查 4 条命令里面 delete 不加 where 会怎么样

回答 1 MySQL 增删改查 4 条命令中的 delete 如果不写 where 条件,会删除整张表全部数据,不会删除表结构,该操作属于高危操作,练习 MySQL 增删改查 4 条命令的时候一定要牢记带上 where 筛选目标行。

问题 2 MySQL 增删改查 4 条命令执行 update 报错是什么原因

回答 2 MySQL 增删改查 4 条命令执行 update 报错,常见原因是字段类型不匹配主键唯一约束冲突账号缺少 update 权限或者表不存在,练习 MySQL 增删改查 4 条命令时核对表名字段名和 set 赋值的数据类型。

问题 3 MySQL 增删改查 4 条命令 insert 插入主键重复怎么办

回答 3 MySQL 增删改查 4 条命令的 insert 语句如果主键或者唯一索引重复,MySQL 会抛出重复键错误,练习 MySQL 增删改查 4 条命令可以使用 insert ignore 或者 on duplicate key update 处理重复数据。

问题 4 MySQL 增删改查 4 条命令 select 查询很慢怎么优化

回答 4 MySQL 增删改查 4 条命令中的 select 查询慢,优先检查 where 条件字段有没有建立索引,避免 select ,减少返回字段,练习 MySQL 增删改查 4 条命令时可以使用 explain 查看 select 语句执行计划判断是否命中索引。

【免责申明】

本文 MySQL 增删改查 4 条命令内容仅用于学习测试练习,delete 和 update 不带 where 会造成全表数据删除修改,生产环境操作前务必备份数据库,本文不对误操作引发的数据丢失业务中断等损失承担任何责任。

 

相关阅读

最新文章