1
数据库原理与应用技术
1.6.4.3 5.4.3 删除数据
5.4.3 删除数据

删除数据的一般语句格式为:

DELETE

FROM <表名>

[WHERE <条件>]

其功能为删除指定表中满足WHERE子句条件的元组。若无WHERE子句,则表示删除指定表中的所有元组,但不删除表结构,表结构仍在数据字典中。

1. 用WHERE子句删除元组的值

【例5-57】删除例5-1的student表中年龄在20岁以上的同学,写出相关语句。

解:DELETE

FROM student

WHERE age>20

若该语句改为

DELETE

FROM student

此语句省略WHERE子句,则表明删除该表中的所有元组,使student表成为一个空表,但是表结构仍然在数据字典中。可以利用WHERE子句确定删除元组的范围。

2. 子查询删除数据

可以用子查询确定删除的范围。

【例5-58】删除计算机科学系所有学生的选课记录,写出相关语句。

解:DELETE

FROM enroll

WHERE EXISTS

(SELECT sno

FROM student

WHERE sno=enroll.sno AND department='计算机');

一般的关系数据库系统都能实现一定的数据一致性检查,以保持数据的完整性,如在IBM的数据库系统DB2中可以通过“事务”的概念来进行处理。但并非所有的数据一致性都能得以保证,因此,对数据库中的数据进行更新操作时,从用户的角度来说也要注意保持数据的一致性。