数据库系统原理:数据删除

yumo6664周前 (04-05)技术文章17

SQL命令包括数据定义、查询、操纵和控制四大类。其中,数据操纵即数据更新包括数据插入、数据删除和数据修改三类。

首先学习数据删除命令的用法。

一、数据删除命令的基本用法

语法:

Delete From 基本表名 [Where 条件表达式]

即从FROM后面的基本表中删除满足Where 条件表达式中的条件的元组。

需要注意:

★Delete语句只能从一个基本表中删除满足Where子句中的条件的元组,即在FROM后面只能有一个基本表名。

★ Delete只删表中的数据,表的定义仍然在数据字典中存在;删除数据后,仍然可以引用该表。

如果语句中没有Where 条件表达式的话,程序会将基本表中的全部数据清空,但是表的定义依然存在。

DELETE命令与数据定义中的删除命令DROP命令的区别:DROP命令不仅删除表中的数据,连带表的定义一起删除。

二、删除一条记录

例1:在基本表S中删除学号是s1的学生。

Delete

From S

Where sno= 's1';

学生的信息是在S表中的,所以FROM后面给出的表名是S,条件是“学号等于s1” ,即删除掉S表中满足“学号是s1”的这行记录。

三、删除多条记录

例2:在基本表SC中删除无成绩的选课记录。

Delete

From SC

Where grade IS NULL

学生的成绩记录是在SC表中的,所以FROM后面给出的表名是SC,条件是“没有成绩”即“成绩为空” 的这些记录,那么SC表中只要是成绩为空的记录都被删除。

四、带子查询的删除

例3:删除所有女学生的选课记录。

学生的选课信息在SC表中,而学生的性别在S表中。

错解:

Delete

From S, SC

WhereS.sno=SC.snoand sex='女';

不能因为删除涉及两张表,就在FROM后面用S和SC表并列、然后给出连接条件、指出选择条件。

因为DELECT命令的用法最需要注意的就是FROM语句中FROM后面只能给出一个表名,也就是说每次删除的时候只能删除一个表中的数据。

若涉及到多表的情况,另一个表的数据可以通过子查询的形式来给出。

正解:

Delete

From SC

Where sno in (Select sno

From S

Where sex='女');

首先通过子查询在S表中查询所有性别为女生的学生的学号信息,子查询的结果就是所有性别为女生的学生的学号信息;然后通过谓词IN,只要学号在女生的学号信息里面,就把该数据在SC表中删除。

五、总结

数据删除命令是用DELECT来实现的,可以使用DELECT命令删除一行记录、多行记录以及在涉及多表数据时使用子查询来做删除操作。需要注意的是,DELECT命令只是删除表中的数据。

DBMS会控制增、删、改等更新操作、做一系列的检查,使之符合完整性约束条件。

例如删除主表S中的数据时,当用户执行:

Delete From S Where sno= 's1'

系统并不立即执行删除命令,而是去检查子表SC,因为在表SC定义的时候创建了外键,其中学号为外键、引用的是S表中的学号这个属性列;当系统检查SC表中存在有学号为s1的学生选课记录时,则系统默认的处理策略是拒绝用户在主表S中的删除命令。

相关文章

DeepSeek本地RAG知识库(17):向量数据库原理讲解(小白也能懂)

大家好!我是程序员寒山。近日很多小伙伴问,为什么要用向量数据库?它到底是怎么存储数据的?今天就给大家揭秘一下向量数据库,看看它有什么神奇的地方?一、什么是向量数据?——菜谱变"坐标"说向量数据库前,首...

详解MySQL事务原理

今天给大家分享的是大数据开发基础部分MySQL的事务,事务在MySQL知识点中非常重要的部分,很多伙伴只是知道MySQL的四大特性,但不知道其中的原理,老刘这次给大家详细的描述MySQL四大特性的原理...

【数据库原理】(7)关系数据库的完整性约束

关系模型的完整性规则是为了确保数据的唯一性和数据之间的关系的准确性。有三类完整性约束:实体完整性、参照完整性和用户定义完整性。其中实体完整性和参照完整性是必须满足的完整性约束条件,应该由关系系统自动支...

数据库系统原理:除法运算

关系代数是实现关系操作的基本表示方法,关系代数运算按运符的不同分为传统的集合运算和专门的关系运算。专门的关系运算包括投影、选择、连接和除法运算,最后学习的运算是除法运算。一、除法运算的定义给定关系R(...

数据库系统原理:模式的定义与删除

SQL命令包括数据定义、查询、操纵和控制四大类,其中SQL的数据定义用于创建数据库中的各种数据对象。SQL的数据定义包括对SQL数据库、模式、基本表、视图和索引的创建和撤销操作。学习用SOL语言定义数...