3.3.4 删除数据
2025年09月26日
3.3.4 删除数据
当表中某些数据不再需要时,可以使用DELETE语句进行删除,其基本格式如下:
说明:
<object>同INSERT语句中的<object>;
如果省略WHERE子句,则将删除表中全部元组,但表的定义仍在字典中,即DELETE语句删除的是表中的数据,而不是关于表的定义。
【例3.21】 删除SC表中的所有选课记录。
DELETE FROM SC;
由于省略了WHERE子句,则SC表中的所有记录都将被删除,但表结构还在。
【例3.22】 删除SC表中学号为“201818101”的选课记录。
DELETE FROM SC
WHERE Sno=201818101;
【例3.23】 删除SC表中“计算机”学院的所有学生的选课记录。
DELETE FROM SC
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept=计算机);
子查询也可以嵌套在DELETE语句的WHERE子句中,用于构造删除的条件。
用户要注意区分DELETE语句和DROP语句,二者的区别如下:
DELETE是数据操纵语句,只是删除表中的相关记录,表的结构、表上建立的约束、索引等数据库对象仍在,并没有被删除。
DROP是数据定义语句,用来删除表的定义,当删除表定义时,所有和表有关的表的结构、表中的数据、表上建立的约束、索引等数据库对象会被一同删除。