SQL研习录(06)——删除数据
版权声明
- 本文原创作者:清风不渡
- 博客地址:https://blog.csdn.net/WXKKang
我们通常通过使用SQL中的DELETE语句来删除表中的现有数据
首先我们准备一些测试数据,代码如下:
CREATE TABLE student(
s_id varchar(50) PRIMARY KEY,
s_name varchar(50),
s_gender varchar(50)
)
INSERT INTO student(s_id,s_name,s_gender) VALUES('S101','Lucy','female');
INSERT INTO student(s_id,s_name,s_gender) VALUES('S102','Jack','male');
INSERT INTO student(s_id,s_name,s_gender) VALUES('S103','Tom','male');
INSERT INTO student(s_id,s_name,s_gender) VALUES('S104','Bruce','male');
INSERT INTO student(s_id,s_name,s_gender) VALUES('S105','Jayce','male');
一、DELETE的基本语法
DELETE FROM table_name
[WHERE condition];
注:
1、table_name是指要执行删除操作的表
2、WHERE子句为可选参数,用于指定删除的条件
二、DELETE删除部分数据
我们可以通过WHERE子句限制删除条件来在表中删除部分数据,示例如下:
例如在测试数据中删除s_id为‘S105’的学生数据,代码如下:
DELETE FROM student WHERE s_id='S105';
执行结果如下:
三、DELETE删除所有数据
与更新数据相似,若没有WHERE子句限制的话就会删除全部记录,示例如下:
如,删除学生表中的全部记录,代码如下:
DELETE FROM student;
执行结果如下:
四、TRUNCATE删除所有数据
我们还有一种方式就是通过TRUNCATE删除所有的数据,它的语法如下:
TRUNCATE TABLE table_name;
例如,删除学生表中的所有数据,代码如下:
TRUNCATE TABLE student;
TRUNCATE和DELETE的区别:
- DELETE语句后可跟WHERE子句,可通过指定WHERE子句中的条件表达式只删除满足条件的部分记录;但是,TRUNCATE语句只能用于删除表中的所有记录
- 使用TRUNCATE语句删除表中的数据后,再次向表中添加记录时自动增加字段的默认初始值重新由1开始;使用DELETE语句删除表中所有记录后,再次向表中添加记录时自动增加字段的值为删除时该字段的最大值加1
- DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句