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 数据操作需求,使用时需注意条件的准确性,避免误操作导致数据丢失。

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

相关推荐
数据库小学妹2 小时前
国产数据库怎么选?兼容、迁移、核心案例与融合架构四道关
数据库·架构·国产数据库·数据库迁移·融合数据库
我是伪码农3 小时前
百蝶杯学习
学习
keyipatience3 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
IvorySQL3 小时前
PostgreSQL 日报| PgBouncer 修复三个 CVE 漏洞(10 月 15 日)
数据库·postgresql·区块链
饺子大魔王的男人3 小时前
后台表格、查询、流程总在重复写?我用ToolJet把PostgreSQL直接做成可远程访问的业务系统
数据库·postgresql
hanlin033 小时前
刷题笔记:力扣第32题-最长有效括号
笔记·算法·leetcode
Gauss松鼠会4 小时前
高斯数据库(openGauss)的物理存储结构
运维·服务器·数据库·sql·opengauss·经验总结
杨云龙UP4 小时前
PostgreSQL 18.4 数据库整库迁移实战:pg_dump 备份与 pg_restore 恢复完整操作手册
运维·服务器·数据库·postgresql·pg_dump·pg_restore
AOI小白新手上路4 小时前
autodl常用的tar 打包下载(数据集)命令手册:逐段拆解与套用模板
java·大数据·数据库