命令 Microsoft Jet數(shù)據(jù)庫引擎從數(shù)據(jù)庫里返回信息,作為一組記錄。
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...][IN外部數(shù)據(jù)庫]
[WHERE...]
]
[GROUP BY...]
]
[HAVING...]
]
[ORDER BY...]
]
[WITH OWNERACCESS OPTION]
SELECT 語句具有以下幾個(gè)部分:
部分 |
說明 |
predicate |
下列謂詞之一:ALL, DISTINCT, DISTINCTROW, 或 TOP.您可用謂詞來限制返回的記錄數(shù)量。如果沒有指定謂詞,則默認(rèn)值為 ALL。 |
* |
從特定的表中指定全部字段。 |
table |
表的名稱,此表中包含已被選擇的記錄的字段。 |
field1, field2 |
字段的名稱,該字段包含了您要獲取的數(shù)據(jù)。如果數(shù)據(jù)包含多個(gè)字段,則按列舉順序依次獲取它們。 |
alias1, alias2 |
名稱,用來作列標(biāo)頭,以代替 table.中原有的列名。 |
tableexpression |
表的名稱,這些表包含要獲取的數(shù)據(jù)。 |
Externaldatabase |
數(shù)據(jù)庫的名稱,該數(shù)據(jù)庫包含 tableexpression 中的表,如果這些表不在當(dāng)前數(shù)據(jù)庫中的話。 |
為完成此運(yùn)算,Microsoft Jet 數(shù)據(jù)庫引擎會(huì)搜索指定的表,抽出所選擇的列,并選擇滿足條件的行,并按指定的順序?qū)x出的行排序,或?qū)⑺鼈兎纸M。
SELECT 語句不會(huì)更改數(shù)據(jù)庫的中的數(shù)據(jù)。
SELECT通常是 SQL 語句.大部分 SQL 語句或者是 SELECT 語句,或者是 SELECT...INTO 語句。
SELECT 語句的最短的語法是:
SELECT fields FROM table
可以用一個(gè)星號(hào) (*) 選取表中所有字段。下例選擇了雇員表中的全部字段:
SELECT * FROM Employees;
如果 FROM 子句中有多個(gè)表包含字段名,則字段之前為表名稱和 .(點(diǎn))操作符。在以下示例中,「部門」字段將出現(xiàn)在雇員表及超級(jí)用戶表中。SQL 語句將從雇員表和超級(jí)用戶表來選擇部門:
SELECT Employees.Department, Supervisors.SupvName
FROM Employees INNER JOIN Supervisors
WHERE Employees.Department = Supervisors.Department;
當(dāng) Recordset 對(duì)象被創(chuàng)建時(shí), Microsoft Jet 數(shù)據(jù)庫引擎把表的字段名作為 Recordset對(duì)象中的 Field 對(duì)象命名。 如果想要一個(gè)不同的字段名,或想要一個(gè)不是由生成字段的表達(dá)式導(dǎo)出的名,則使用 AS 保留字。在下例所得到的 Recordset 對(duì)象中用 Birth 標(biāo)題將返回的 Field 對(duì)象命名:
SELECT BirthDate
AS Birth FROM Employees;
無論何時(shí)使用合計(jì)函數(shù)或查詢,而且該查詢返回含糊的或重復(fù)的 Field 對(duì)象名稱,都必須用 AS 子句來提供 Field 對(duì)象的替代名稱。在以下示例所得到的 Recordset 對(duì)象中用 HeadCount 標(biāo)題將返回的 Field 對(duì)象命名:
SELECT COUNT(EmployeeID)
AS HeadCount FROM Employees;
可使用 SELECT 語句中的其它子句進(jìn)一步限制和組織已返回的數(shù)據(jù)。若需更多信息,參見所用子句的主題幫助。