3.3.4 删除数据

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是数据定义语句,用来删除表的定义,当删除表定义时,所有和表有关的表的结构、表中的数据、表上建立的约束、索引等数据库对象会被一同删除。