MySQL 数据操作:增删改核心语法全解析

在数据库日常管理中,对数据的添加、修改、删除是最基础也是最核心的操作。本文将以 MySQL 为例,系统讲解 SQL 中 INSERT(添加)、UPDATE(更新)、DELETE(删除)的常用语法,结合实际案例让新手也能快速上手。


目录

一、添加数据(INSERT)

[1. 选择插入(指定列插入)](#1. 选择插入(指定列插入))

[2. 完全插入(全列插入)](#2. 完全插入(全列插入))

[3. 默认值的处理](#3. 默认值的处理)

(1)创建表时指定默认值

(2)修改表添加带默认值的新列

(3)插入数据时使用默认值

二、更新数据(UPDATE)

三、删除数据(DELETE/TRUNCATE)

[1. 按条件删除数据](#1. 按条件删除数据)

[2. 清空表中全部数据](#2. 清空表中全部数据)

[(1)DELETE 方式](#(1)DELETE 方式)

[(2)TRUNCATE 方式](#(2)TRUNCATE 方式)

总结


一、添加数据(INSERT)

添加数据是向数据表中写入新记录的操作,根据列的指定方式,主要分为选择插入完全插入两种形式,同时需注意默认值的处理逻辑。

1. 选择插入(指定列插入)

当只需为表中部分列赋值时,使用选择插入语法,明确指定要插入数据的列名,values 后按列名顺序对应赋值。

语法格式

insert into 表名(列名 1 , 列名2 ,列名 3 ......) values(值 1, 值 2, 值 3 ......);

示例:向 student 表中插入姓名、成绩、班级 ID 数据

sql 复制代码
insert into student (st_name,st_grade,cl_id) values("小孔",100,1);

2. 完全插入(全列插入)

若要为表中所有列赋值,可省略列名列表,直接在 values 后按表的列顺序赋值。注意:如果主键是自增类型(auto_increment),需用 default、null 或 0 占位,数据库会自动生成主键值。

语法格式

insert into 表名 values(值1, 值2, 值3......);

示例:向 class 表(含自增主键 cl_id)插入数据

sql 复制代码
insert into class values (default,"63","黄老师");
insert into class values (null,"64","孟老师");
insert into class values (0,"65","钱老师");

3. 默认值的处理

(1)创建表时指定默认值

建表时可为列设置默认值,插入数据时若未赋值,会自动使用默认值。

语法格式

create table 表名(列名 类型 default 默认值,......);

示例:创建 student3 表,地址列默认值为 "未知"

sql 复制代码
create table student3 (st_id int primary key auto_increment,st_name varchar(20) not null, st_address varchar(20) default "未知");

(2)修改表添加带默认值的新列

已存在的表可通过 ALTER 语句添加新列并指定默认值。

语法格式

alter table 表名 add column 列名 类型 default 默认值;

示例:为 student3 表添加 class_name 列,默认值 "未分配"

sql 复制代码
alter table student3 add column class_name varchar(20) default "未分配";

(3)插入数据时使用默认值

插入数据时,未指定值的列会自动使用默认值;也可显式用 default 指定使用默认值。

示例

sql 复制代码
insert into  student3 (st_name) values ("小周");
insert into  student3 values(default,"小孔",default,default);

二、更新数据(UPDATE)

更新数据用于修改表中已存在的记录,核心是通过 WHERE 子句指定修改范围,避免误改全表数据。

语法格式

update 表名 set 列名 = 值 , 列名 = 值 where 条件;

示例

sql 复制代码
update student3 set st_address = "北京" where st_id = 1;
update student3 set st_address = "雄安新区" where st_id = 1;

注意:若省略 WHERE 子句,会修改表中所有记录,务必谨慎!

三、删除数据(DELETE/TRUNCATE)

1. 按条件删除数据

删除指定条件的记录,同样通过 WHERE 子句限定范围。

语法格式

delete from 表名 where 条件;

示例:

sql 复制代码
delete from student3 where st_addresss = "雄安新区"

2. 清空表中全部数据

清空全表有两种方式,适用场景不同:

(1)DELETE 方式

sql 复制代码
delete from 表名;
-- 示例
delete from student3;

特点:逐行删除记录,速度较慢;自增主键不会重置,适合需要保留表结构、且可能需恢复数据的场景。

(2)TRUNCATE 方式

sql 复制代码
truncate table 表名;
-- 示例
truncate table student3;

特点:一次性清除所有数据,速度快;会重置自增主键,且数据不可恢复,适合批量清空无备份需求的表。

总结

  1. 插入数据分 "选择插入"(指定列)和 "完全插入"(全列),自增主键需用 default/null/0 占位,默认值可在建表 / 改表时设置,插入时未赋值自动使用默认值;
  2. 更新数据(UPDATE)必须加 WHERE 条件,否则会修改全表,核心是 "指定表 + 设置新值 + 限定条件";
  3. 删除数据可按条件删除(DELETE+WHERE),清空全表优先选 TRUNCATE(快、重置自增),需保留自增序列选 DELETE。

掌握以上基础语法,就能完成日常 80% 的 SQL 数据操作需求,使用时需注意条件的准确性,避免误操作导致数据丢失。

希望这篇文章对你有帮助,如果你有任何问题或建议,欢迎在评论区留言。谢谢阅读(求攒攒 收藏 关注)!

相关推荐
得物技术1 小时前
数据库AI方向探索-MCP原理解析&DB方向实战|得物技术
数据库
Arva .1 小时前
MySQL 的锁类型有哪些
数据库·mysql
RaLi和夕1 小时前
硬件电路设计学习笔记1.三极管开关电路设计
笔记·嵌入式硬件·学习
Tonya432 小时前
测开学习DAY38
学习
APIshop2 小时前
微店关键词搜索商品列表 API 实战:micro.item_search 全流程指南
数据库
小龙2 小时前
【理论知识】主流测井技术优缺点对比笔记
笔记·石油勘探·测井技术·测井
骑鱼过海的猫1232 小时前
【git】git学习记录
git·学习·elasticsearch
QT 小鲜肉2 小时前
【孙子兵法之下篇】010. 孙子兵法·地形篇深度解析与现代应用
人工智能·笔记·读书·孙子兵法
翔云1234562 小时前
在MySQL中,使用物理备份工具 xtrabackup备份扩容从库,从库上的gtid_executed和gtid_purged变化过程
数据库·mysql