SELECT 陳述式指示 Microsoft Access 資料庫引擎從資料庫將資訊以一組記錄的形式傳回。
語法
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...] [IN externaldatabase]
[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 Access 資料庫引擎會搜尋指定的資料表,擷取選定的欄,選取符合準則的列,並將結果資料列依指定的順序排序或分組。
SELECT 陳述式不會變更資料庫中的資料。
SELECT 通常會是 SQL 陳述式中的第一個字。 大部分的 SQL 陳述式 SELECT 或 SELECT...INTO 陳述式。
最短的 SELECT 陳述式的語法是:
SELECT「欄位」 FROM「資料表」
您可以使用星號 (*) 來選取資料表中的所有欄位。 下列範例選取 [Employees] 資料表中的所有欄位:
SELECT * FROM Employees;
如果在 FROM 子句中超過一個資料表有相同的欄位名稱,請在欄位名稱前加上資料表名稱及 . (點) 運算子。 在下列範例中,[Employees] 資料表和 [Supervisors] 資料表都有 [Department] 欄位。 SQL 陳述式會從 [Employees] 資料表選取部門,並從 Supervisors 資料表選取主管姓名:
SELECT Employees.Department, Supervisors.SupvName FROM Employees INNER JOIN Supervisors WHERE Employees.Department = Supervisors.Department;
建立記錄集物件時,Microsoft Access 資料庫引擎會使用資料表的欄位名稱做為 Recordset 物件的欄位物件名稱。 如果您想要用不同的欄位名稱,或是產生欄位之運算式中未隱含的名稱,請使用 AS 保留字。 下列範例使用標題 [Birth] 來命名結果 Recordset 物件的 Field 物件:
SELECT BirthDate AS Birth FROM Employees;
每當使用的彙總函數或查詢傳回定義不清或重複的 Field 物件名稱時,必須使用 AS 子句來提供 Field 物件的替代名稱。 下列範例使用標題 HeadCount 來命名結果 Recordset 物件的 Field 物件:
SELECT COUNT(EmployeeID) AS HeadCount FROM Employees;
您可以在 SELECT 陳述式中使用其他子句,進一步限制及組織所傳回的資料。 如需詳細資訊,請參閱您使用之子句的說明主題。