命令 Microsoft Jet数据库引擎从数据库里返回信息,作为一组记录。
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...][IN外部数据库]
[WHERE...]
]
[GROUP BY...]
]
[HAVING...]
]
[ORDER BY...]
]
[WITH OWNERACCESS OPTION]
SELECT 语句具有以下几个部分:
部分 | 说明 |
---|---|
predicate | 下列谓词之一:ALL, DISTINCT, DISTINCTROW, 或 TOP.您可用谓词来限制返回的记录数量。如果没有指定谓词,则默认值为 ALL。 |
* | 从特定的表中指定全部字段。 |
table | 表的名称,此表中包含已被选择的记录的字段。 |
field1, field2 | 字段的名称,该字段包含了您要获取的数据。如果数据包含多个字段,则按列举顺序依次获取它们。 |
alias1, alias2 | 名称,用来作列标头,以代替 table.中原有的列名。 |
tableexpression | 表的名称,这些表包含要获取的数据。 |
Externaldatabase | 数据库的名称,该数据库包含 tableexpression 中的表,如果这些表不在当前数据库中的话。 |
为完成此运算,Microsoft Jet 数据库引擎会搜索指定的表,抽出所选择的列,并选择满足条件的行,并按指定的顺序对选出的行排序,或将它们分组。
SELECT 语句不会更改数据库的中的数据。
SELECT通常是 SQL 语句.大部分 SQL 语句或者是 SELECT 语句,或者是 SELECT...INTO 语句。
SELECT 语句的最短的语法是:
SELECT fields FROM table
可以用一个星号 (*) 选取表中所有字段。下例选择了雇员表中的全部字段:
SELECT * FROM Employees;
如果 FROM 子句中有多个表包含字段名,则字段之前为表名称和 .(点)操作符。在以下示例中,「部门」字段将出现在雇员表及超级用户表中。SQL 语句将从雇员表和超级用户表来选择部门:
SELECT Employees.Department, Supervisors.SupvName
FROM Employees INNER JOIN Supervisors
WHERE Employees.Department = Supervisors.Department;
当 Recordset 对象被创建时, Microsoft Jet 数据库引擎把表的字段名作为 Recordset对象中的 Field 对象命名。 如果想要一个不同的字段名,或想要一个不是由生成字段的表达式导出的名,则使用 AS 保留字。在下例所得到的 Recordset 对象中用 Birth 标题将返回的 Field 对象命名:
SELECT BirthDate
AS Birth FROM Employees;
无论何时使用合计函数或查询,而且该查询返回含糊的或重复的 Field 对象名称,都必须用 AS 子句来提供 Field 对象的替代名称。在以下示例所得到的 Recordset 对象中用 HeadCount 标题将返回的 Field 对象命名:
SELECT COUNT(EmployeeID)
AS HeadCount FROM Employees;
可使用 SELECT 语句中的其它子句进一步限制和组织已返回的数据。若需更多信息,参见所用子句的主题帮助。