航空论坛_航空翻译_民航英语翻译_飞行翻译

标题: 使用查询从数据库中删除一条或多条记录 [打印本页]

作者: 帅哥    时间: 2009-11-10 10:36:13     标题: 使用查询从数据库中删除一条或多条记录

本文介绍如何使用更新查询和删除查询从 Microsoft Office Access 2007 数据库中删除数据。您可以使用更新查询来删除数据库记录中的单个字段,如果需要删除数据库中的整条记录(包括唯一标识记录的键值),则可以使用删除查询。在操作的过程中,请记住,Access 还提供了多种手动删除部分或整条记录的方法。
- ^' d& ^, F5 M  A# c% x  e有关手动删除记录的详细信息,请参阅从数据库中删除一条或多条记录一文。
4 W% r8 l$ v' K7 K" z本文内容
5 W2 d! b0 B) \6 G了解如何使用查询删除数据可以使用两类查询来删除 Access 数据库中的数据。具体使用哪种查询取决于要执行的删除的类型。
9 w- E' u* N3 M6 |: x- k进行操作时,请记住:如果要删除的记录位于一对多关系的“一”端,必须先更改关系的属性,然后才能运行查询,本文后面的准备删除相关数据一节介绍了如何执行此任务。您还必须进行其他一些更改才能执行删除操作,因为默认情况下,Access 禁止删除一对多关系的“一”端中的数据。: i9 Y& W) f+ p4 X9 Z
如果需要了解有关一对多关系的详细信息,请参阅文章数据库设计基础创建、编辑或删除关系5 h3 w8 ]" ?4 b4 s& i1 @
此外,还请记住:更新或删除部分或整条记录后,将不能撤消更改,因此,运行删除查询之前,应始终先备份数据。有关详细信息,请参阅本文后面的备份数据库
! C: ~4 C' l* v2 d# N# \以下各节中的步骤介绍了如何创建更新查询以删除单个字段中的数据;以及如何创建删除查询以删除整条记录。; O7 u+ P+ _( g0 V. y
注释   通常,只有当需要快速更改或删除大量数据时,才使用更新查询和删除查询。如果只需要删除少量记录(便于手动删除的任何数量),您可以在数据表视图中打开表,选择要删除的字段或行,然后按 Delete。  
% K/ ~8 I! ]6 A6 Y% |2 l有关删除数据的其他方法的详细信息,请参阅从数据库中删除一条或多条记录一文。" h0 d, c9 H0 A' }6 e9 g- i" p" w
返回页首
1 Q- x7 v7 U; i7 ^计划删除使用查询删除记录的过程包括以下一般步骤:' \2 u& k) a/ B3 y
常规准备在从数据库中删除部分或整条记录之前,请执行以下任务:& d4 y& [( I: d+ s! @" m
准备删除相关数据如果您需要删除相关表中的数据,请记住以下规则:如果数据位于一对多关系的“多”端,则您可以直接删除数据而不必更改关系。但如果数据位于一对多关系的“一”端,则必须先更改关系,否则 Access 将禁止删除。
0 b$ Q, Y4 ^, a+ V" n4 U请按照如下常规步骤删除相关数据:( c3 m3 @3 ^% X! l+ F. V) t
以下各节中的步骤介绍了如何准备要删除的相关数据。' K! T/ u  }  R! |
确定哪些记录位于关系的“一”端,哪些记录位于“多”端编辑关系仅当您需要删除关系的“一”端和“多”端中的数据时,才执行以下步骤。2 A7 y. F: v$ T0 C; B
删除关系 注释   要还原关系,请按照上面的步骤打开“关系”窗格,然后将“一”端表中的主键字段拖放到“多”端表中的外键字段。将显示“编辑关系”对话框。如果原来的关系实施了参照完整性,则请选择“实施参照完整性”,然后单击“创建”。否则,只需单击“创建”* C) i/ P6 ?+ S1 j# k( X/ L
返回页首0 i! G, D" K$ w; c1 V* E, m( d( X8 j
防止禁用模式阻止查询默认情况下,如果您打开了未选择信任的数据库,或者打开了不在受信任位置的数据库,Access 将禁止运行所有动作查询。
/ _7 V, Y, a6 Q5 w& K, c如果您尝试运行某个动作查询,但好像没有什么反应,请查看 Access 状态栏中是否显示下列消息:$ l% w' `- V" Z# o8 `. l# \- ?7 Z
“此操作或事件已被禁用模式阻止。”7 R, F" [) O, H, G. Q
如果看到该消息,请执行下列操作:
3 L* }, `8 P" M+ J" t) \; E启用阻止的内容如果没有看到消息栏有关禁用模式和 Access 安全的详细信息,请参阅保护 Access 2007 数据库一文。/ y' ^0 @9 t  K! s
删除部分记录(一个或多个字段)本节中的步骤介绍如何使用更新查询来删除位于一对多关系的“多”端的表中的部分记录(个别字段)。您也可以按照这些步骤来从表中删除与其他数据无关的数据。请记住,运行更新查询删除数据会将现有值更改为 NULL 或零长度字符串(中间不包含空格的一对双引号),具体取决于您指定的条件。有关使用更新查询的详细信息,请参阅创建更新查询一文。
, a) }9 C+ U$ S创建选择查询将选择查询转换为更新查询 返回页首  F8 O7 B/ s0 g, p8 U# W
删除整条记录本节中的步骤介绍了如何使用删除查询从表中删除整条记录。7 P+ @6 @$ w% E$ [1 J: l
创建选择查询将选择查询转换为删除查询并删除数据 返回页首2 M/ C4 \- I$ t2 m/ D* O5 B
返回页首
4 W" `+ u$ a( v- q. I5 P: \选择查询条件示例下表列出了可以在选择查询中使用的一些示例条件,这些条件可确保您仅删除正确的数据。您可以将这些示例条件用于您自己的数据。部分示例使用了通配符。7 o; [6 W1 v0 P
有关使用通配符的详细信息,请参阅 Access 通配符参考一文。* l) G' E8 V1 H+ }2 f

5 Y2 m0 v2 c* R
条件效果
> 234 返回所有大于 234 的数字。若要查找所有小于 234 的数字,请使用 < 234。
>= "Cajhen"返回从 Cajhen 直至字母表末尾的所有记录
Between #2/2/2007# And #12/1/2007# 返回 2007 年 2 月 2 日到 2007 年 12 月 1 日之间的日期 (ANSI-89)。如果数据库使用的是 ANSI-92 通配符,则使用单引号 (') 替代井号 (#)。例如:Between '2/2/2007' And '12/1/2007'
Not "德国"查找字段内容与“德国”不完全相同的所有记录。该条件将返回除了包含“德国”之外还包含其他字符的记录,如“德国(欧元)”或“欧洲(德国)”。
Not "T*" 查找所有记录,以 T 开头的记录除外。如果数据库使用的是 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号 (*)。
Not "*t"查找不以 t 结尾的所有记录。如果数据库使用的是 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号 (*)。
In(加拿大,英国)在列表中,查找包含“加拿大”或“英国”的所有记录。
Like "[A-D]*" 在文本字段中,查找所有以字母 A 到 D 开头的记录。如果数据库使用的是 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号 (*)。
Like "*ar*" 查找包含字母序列“ar”的所有记录。如果数据库使用的是 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号 (*)。
Like "Maison Dewe?" 查找满足以下条件的所有记录:以“Maison”开头并包含另一个含有 5 个字母的字符串,且该字符串的前 4 字母是“Dewe”而最后的字母未知。如果数据库使用的是 ANSI-92 通配符字符集,则使用下划线 (_) 替代问号 (?)。
#2/2/2007# 查找 2007 年 2 月 2 日的所有记录。如果数据库使用的是 ANSI-92 通配符字符集,则使用单引号替代井号来括住日期 ('2/2/2007')。
< Date() - 30 使用 Date 函数返回超过 30 天的所有日期。
Date() 使用 Date 函数返回包含当前日期的所有记录。
Between Date() And DateAdd("M", 3, Date()) 使用 Date 函数和 DateAdd 函数返回介于当前日期与从当前日期起三个月之内的所有记录。
Is Null 返回包含 Null(空或未定义)值的所有记录。
Is Not Null 返回包含任何值(不为 Null)的所有记录。
"" 返回包含零长度字符串的所有记录。当您需要向必填字段添加值,但还不知道实际值是什么时,则可以使用零长度字符串。例如,某个字段可能需要传真号码,但某些客户可能没有传真机。在这种情况下,可以输入一对中间不带空格的双引号 ("") 来替代数字。





欢迎光临 航空论坛_航空翻译_民航英语翻译_飞行翻译 (http://bbs.aero.cn/) Powered by Discuz! X2