關於 SQL 查詢 (MDB)

 附註   本主題的資訊僅適用於 Microsoft Access 資料庫 (.mdb)。

SQL 查詢是使用 SQL 陳述式 (SQL 字串/陳述式:定義 SQL 指令 (如 SELECT、UPDATE 或 DELETE) 的運算式,且包括子句,如 WHERE 及 ORDER BY。SQL 字串/陳述式通常用於查詢及聚合函數。)建立的查詢。您可以使用「結構化查詢語言」(SQL) 來查詢資料表及管理關聯式資料庫,例如 Microsoft Access。

在查詢[設計] 檢視 (設計檢視:顯示下列資料庫物件之設計的檢視:資料表、查詢、表單、報表和巨集。在設計檢視中,您可以建立新資料庫物件,以及修改現有物件的設計。)中建立查詢時,Access 會在背景建構相對的 SQL 陳述式。事實上,查詢 [設計檢視] 中屬性表的大部份屬性都會在 SQL 檢視 (SQL 檢視:顯示目前查詢的 SQL 陳述式,或用來建立 SQL 特定查詢 (聯集、通過或資料定義) 的物件索引標籤。當您在設計檢視中建立查詢時,SQL 對等項會在 SQL 檢視中建構。)中有相對的子句和選項。若要如此,可以在 SQL 檢視中檢視或編輯 SQL 陳述式。不過,在 SQL 檢視中變更查詢之後,可能不會依照先前在設計檢視中的方式顯示查詢。

有些 SQL 查詢 (稱為 SQL 特定的查詢 (SQL 特定的查詢:包含 SQL 陳述式的查詢。子查詢及通過、聯集及資料定義查詢為 SQL 特定的查詢。)) 無法在設計格線 (設計格線:您用來在查詢設計檢視或 [進階篩選/排序] 視窗中設計查詢或篩選的格線。對於查詢,此格線以前稱為 QBE 格線。)中建立。對於通過 (傳遞查詢:您用來將指令直接傳送到 ODBC 資料庫伺服器的 SQL 特定查詢。藉由使用傳遞查詢,您可以直接使用伺服器上的資料表,而非 Access 資料庫引擎處理的資料。)資料定義 (資料定義查詢:包含資料定義語言 (DDL) 陳述式之 SQL 特定的查詢。這些陳述式可讓您建立或變更資料庫中的物件。)聯集查詢 (聯集查詢:使用 UNION 運算子來合併兩個或兩個以上選取查詢結果的查詢。),必須直接在 SQL 檢視中建立 SQL 陳述式。至於子查詢 (子查詢:其他選取或動作查詢中的 SQL SELECT 陳述式。)方面,可以在查詢設計格線的 [欄位] 列或 [準則] 列輸入 SQL。

顯示使用 Where SQL 陳述式

您可以在 Access 的很多地方使用 SQL 陳述式,其中可以輸入資料表、查詢或欄位的名稱。

在某些情況下,Access 會為您填寫 SQL 陳述式。例如,在使用精靈來建立表單或報表,以便從多個資料表取得資料時,Access 會自動建立 SQL 陳述式,它會當成表單或報表 [記錄來源] 屬性的設定。在使用精靈建立清單方塊或下拉式方塊時,Access 會建立 SQL 陳述式,然後當成清單方塊或下拉式方塊 [資料來源] 屬性的設定。

若不使用精靈,您可以產生 [記錄來源][資料來源] 屬性的 SQL 陳述式,只要按一下其中一個屬性旁邊的 [建立] 按鈕 按鈕圖像 即可,然後在查詢 [設計檢視] 中建立查詢。

您也可以在下列狀況撰寫程式來使用 SQL 陳述式:

顯示在 SQL 中使用運算式

您可以在 SQL SELECT 陳述式或 WHERE、ORDER BY、GROUP BY 或 HAVING 等子句中輸入運算式。也可以在數個引數 (引數:將資訊提供給動作、事件、方法、屬性、函數或程序的值。)屬性 (屬性:控制項、欄位或物件的具名屬性,設定它可定義物件的某一個特性 (如大小、色彩或螢幕位置),或定義物件行為的某一方面 (如物件是否為隱藏)。)設定中輸入運算式。例如,可以將 SQL 運算式當成:

顯示SQL 特定查詢

顯示聯集查詢

聯集查詢會在查詢結果中將兩個或多個資料表或查詢的欄位結合成一個欄位。可以使用聯集查詢來結合兩個資料表的資料。例如,可以結合 [供應商] 和 [客戶] 資料表中位於巴西的所有公司的公司名稱和城市。然後可以依據聯集查詢來建立設立資料表查詢以建立新資料表。

使用兩個或多個具有聯集查詢的資料表來結合資料

圖說文字 1 第一個 SELECT 陳述式會傳回兩個欄位...

圖說文字 2... 第二個 SELECT 陳述式會傳回兩個對應欄位,然後...

圖說文字 3... 將兩個資料表對應欄位的值結合成一個欄位。

顯示通過查詢

顯示資料定義查詢

資料定義查詢會建立、刪除或變更資料表,或在資料庫資料表建立索引。例如,下列資料定義查詢使用 CREATE TABLE 陳述式來建立稱為 Friends 的資料表。該陳述式包含資料表中每一個欄位的名稱及資料類型 (資料類型:決定欄位可存放之資料類型的欄位特性。資料類型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 及 Variant (預設值)。),將 FriendID 欄位設定為索引 (索引:根據索引值加速資料表搜尋及排序,且可以強迫資料表中的列具有唯一性的功能。資料表的主索引會自動編排索引。部分欄位可能因資料類型而無法編排索引。)並指定為主索引 (主索引鍵:其值唯一識別資料表中每筆記錄的一個或多個欄位 (欄)。主索引鍵不容許 Null 值,且必須恆有唯一索引。主索引鍵用來將資料表與其他資料表中的外部索引產生關聯。)

CREATE TABLE Friends
([FriendID] integer,
[LastName] text,
[FirstName] text,
[Birthdate] date,
[Phone] text,
[Notes] memo,
CONSTRAINT [Index1] PRIMARY KEY ([FriendID]));

顯示子查詢

子查詢包含另一個選擇查詢中的 SQL SELECT 陳述式或動作查詢。可以在查詢設計格線 (設計格線:您用來在查詢設計檢視或 [進階篩選/排序] 視窗中設計查詢或篩選的格線。對於查詢,此格線以前稱為 QBE 格線。)[欄位] 列輸入這些陳述式來定義新欄位,或在 [準則] 列輸入這些陳述式來定義欄位的準則。可以使用子查詢執行:

  • 測試子查詢的結果 (使用 EXISTS 或 NOT EXISTS 保留字)。
  • 在主要查詢中尋找任何等於、大於或小於由子查詢傳回的值 (使用 ANY、IN 或 ALL 保留字)。
  • 在子查詢中建立子查詢 (巢狀式的子查詢)。
 
 
適用:
Access 2003