第八章 运用Delete语句删除记录
如果表格中存在错误或重复的数据,比较简单、快捷的方法就是选定该数据,然后将其删除。在ACCESS数据库中进行数据行删除的SQL语句为Delete,它的作用是创建一个删除查询,用于从FROM子句中列出的一个或多个表中删除满足Where子句的记录。
第一节 Delete(删除)的完整语法
MS ACCESS SQL的Delete语句的完整语法如下:
一、Delete语句的完整语法
Delete [table.*] FROM table Where criteria;
Delete语句包含以下部分:
部分
|
说明
|
table
|
从中删除记录的表的名称,可选。
|
table
|
从中删除记录的表的名称。
|
criteria
|
表达式,用于确定要删除哪些记录。
|
二、几点注解说明
希望删除多个记录时,Delete语句特别有用。
要从数据库中删除整个表,可以使用带有Drop语句的Execute方法。但是,如果删除表,表的结构就会丢失;而使用Delete语句时,只会删除表中的数据,表的结构和所有表属性(如字段属性和索引)将保持不变。
可以使用Delete从与其他表存在一对多关系的表中删除记录。当查询中删除了关系的某一方中的相应记录时,级联删除操作会删除在关系的多方表中的相应记录。例如,在“客户”表和“订单”表的关系中,“客户”表是关系的一方,而“订单”表则是关系中的多方。如果指定了级联删除选项,那么从“客户”表中删除一个记录将导致“订单”表中相应的记录被删除。
删除查询将删除整个记录,而不仅仅删除特定字段中的数据。如果要删除特定字段的值,请创建一个更新查询,将相应字段的值更改为Null。
特别需要说明或提醒的是使用删除查询删除记录后,无法取消该操作。如果要知道删除了哪些记录,先检查使用相同条件的选择查询的结果,然后运行删除查询。
不论什么时候都要维护数据的备份。如果错删了记录,还可以从备份中检索这些记录。
三、Delete语句的编程示例
示例:
本例删除职务为Trainee的雇员的所有记录。当FROM子句中仅包含一个表时,您不必在Delete语句中列出该表的名称。
Sub DeleteX()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to
Northwind
' on your computer.
Set dbs =
OpenDatabase("Northwind.mdb")
' Delete employee records where title is
Trainee.
dbs.Execute "Delete * FROM " _
& "Employees Where Title =
'Trainee';"
dbs.Close
End Sub