使用 Access SQL 检索记录

最基本且最常用的 SQL 语句是 SELECT 语句。 SELECT 语句是所有 SQL 语句的基础,通常被称为选择查询。 使用 SELECT 语句可以从数据库表中检索数据,结果通常以一组包含任意多字段(或列)的记录(或行)的形式返回。 必须使用 FROM 子句来指定要从哪个表中进行选择。 SELECT 语句的基本结构为:

SELECT field list  
    FROM table list

要从表中选择所有字段,请使用星号 (*)。 例如,以下语句从 Customers 表中选择所有字段和所有记录。

SELECT * 
    FROM tblCustomers 

要限制通过查询检索到的字段,只需使用字段名称即可。 例如。

SELECT [Last Name], Phone 
    FROM tblCustomers 

若要为结果集中的字段指定其他名称,请使用 AS 关键字为该字段建立别名。

SELECT CustomerID AS [Customer Number] 
    FROM tblCustomers 

限制结果集

通常,你不希望从表中检索所有记录。 根据某些限定条件,你只需要这些记录的子集。 若要限定 SELECT 语句,必须使用 WHERE 子句,以便准确指定要检索的记录。

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 

请注意 CustomerID = 1WHERE 子句的 部分。 一个 WHERE 子句最多可以包含 40 个此类表达式,这些表达式可以用 And 或 Or 逻辑运算符连接。 使用多个表达式可以进一步筛选掉结果集中的某些记录。

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 AND InvoiceDate > #01/01/98# 

请注意,日期字符串用数字符号 (#) 括起来。 如果在表达式中使用正则表达式,则必须将该字符串括在单引号 (') 中。 例如。

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] = 'White' 

如果不知道整个字符串值,可以将通配符与 Like 运算符一起使用。

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] LIKE 'W*' 

有许多通配符可供选择,下表列出了通配符及其用途。

通配符 说明
* 零个或多个字符
? 任意单个字符
# 任何单个数字 (0-9)
[ charlist ] charlist 中的任何单个字符。
[! charlist ] 不在 charlist 中的任何单个字符。

对结果集进行排序

若要在结果集中的一个或多个字段上指定特定的排序顺序,请使用可选的 ORDER BY 子句。 记录可以升序 (ASC) 排序,也可以按降序 (DESC) 排序;默认为升序。

ORDER BY 子句中引用的字段不必是 SELECT 语句的字段列表的一部分,并且排序可以应用于字符串、数值和日期/时间值。 始终将 ORDER BY 子句放在 SELECT 语句的末尾。

SELECT * 
    FROM tblCustomers 
    ORDER BY [Last Name], [First Name] DESC 

还可以在 ORDER BY 子句中使用字段编号(或位置)而不使用字段名。

SELECT * 
    FROM tblCustomers 
    ORDER BY 2, 3 DESC 

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。