在数据库日常管理中,对数据的添加、修改、删除是最基础也是最核心的操作。本文将以 MySQL 为例,系统讲解 SQL 中 INSERT(添加)、UPDATE(更新)、DELETE(删除)的常用语法,结合实际案例让新手也能快速上手。
目录
[1. 选择插入(指定列插入)](#1. 选择插入(指定列插入))
[2. 完全插入(全列插入)](#2. 完全插入(全列插入))
[3. 默认值的处理](#3. 默认值的处理)
[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;
特点:一次性清除所有数据,速度快;会重置自增主键,且数据不可恢复,适合批量清空无备份需求的表。
总结
- 插入数据分 "选择插入"(指定列)和 "完全插入"(全列),自增主键需用 default/null/0 占位,默认值可在建表 / 改表时设置,插入时未赋值自动使用默认值;
- 更新数据(UPDATE)必须加 WHERE 条件,否则会修改全表,核心是 "指定表 + 设置新值 + 限定条件";
- 删除数据可按条件删除(DELETE+WHERE),清空全表优先选 TRUNCATE(快、重置自增),需保留自增序列选 DELETE。
掌握以上基础语法,就能完成日常 80% 的 SQL 数据操作需求,使用时需注意条件的准确性,避免误操作导致数据丢失。
希望这篇文章对你有帮助,如果你有任何问题或建议,欢迎在评论区留言。谢谢阅读(求攒攒 收藏 关注)!
