从 FROM 子句中的列表中指定哪些记录受到 SELECT, UPDATE, 或 DELETE 语句的影响。
SELECT 字段表
FROM tableexpression
WHERE标准
包含 WHERE 子句的SELECT 语句具有以下几个部分:
部分 | 说明 |
---|---|
fieldlist | 要和任何字段名别名, 选择断定 (ALL, DISTINCT, DISTINCTROW, 或 TOP), 或其他 SELECT 语句 选择一起检索的字段名称。 |
tableexpression | 表的名称,可从这些表中获取数据。 |
criteria | 使查询结果中能包括记录的表达式 |
Microsoft Jet数据库引擎选择符合 WHERE 子句所列条件的记录。.如果未指定 WHERE 子句,则查询将返回表中的所有行。如果你在查询中指定了多于一个的表,且没包括 WHERE 子句 或 JOIN 子句, 你的查询会启动表的 Cartesian产品
WHERE 是可选的,但在使用时必须接在 FROM 之后。例如,可在销售部门选择全部雇员(WHERE Dept = 'Sales')或年龄在 18 岁 至 30 岁之间(WHERE Age Between 18 And 30)的全部客户。
如果未在多重表中使用 JOIN 子句完成 SQL 联结运算,则不能更新所得到的 Recordset 对象。
WHERE 与 HAVING 相近。WHERE 决定应选择哪个记录。与此相似,一旦用 GROUP BY 将记录分组,则 HAVING 将决定显示哪个记录。
使用 WHERE 子句可消除您不想用 GROUP BY 子句进行分组的记录。
用多种不同的表达式来确定 SQL 语句将返回哪些字段。例如,下行 SQL 语句将选择薪金超过 $21,000 的所有雇员:
SELECT LastName, Salary
FROM Employees
WHERE Salary > 21000;
WHERE 子句最多可包含 40 个表达式,这些表达式由诸如 And 和 Or 之类的逻辑操作符链接。
当您输入的字段名包含空格或标点符号时,请用括号 ([ ]) 将它括在其中。例如,一个客户信息表可能包含有关特定客户的信息:
SELECT [Customer’s Favorite Restarant]
当您指定 criteria 参数时,即使没有使用 U.S. 版本的 Microsoft Jet 数据库引擎,也必须用 U.S. 格式表示日期文字。例如,在英国将 May 10, 1996 写成 10/5/96,而在美国却写成 5/10/96。必须确保将日期文字与数字符号 (#) 括起来,如下例所示。
为在英国的数据库中查找日期为 May 10, 1996 的记录,必须使用下列 SQL 语句:
SELECT *
FROM Orders
WHERE ShippedDate = #5/10/96#;
也可使用 DateValue 函数,这是 Microsoft Windows 建立的国际标准设置值。例如,在美国这样使用此代码:
SELECT *
FROM Orders
WHERE ShippedDate = DateValue('5/10/96');
而在英国这样使用此代码:
SELECT *
FROM Orders
WHERE ShippedDate = DateValue('10/5/96');
注意:如果判别串中引用的列是GUID型的,判别表达式会使用略有差异的语法。
WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}
必须确保将以上所示嵌套大括弧和连字符都包括在内。