使用資料定義查詢建立或修改資料表或索引

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

在Microsoft Office Access 2007,您可以輕鬆建立及修改表格、 限制式] 和 [設計] 檢視中的索引,並使用資料庫關聯圖視窗建立關聯。或者,您可以建立並以撰寫資料定義查詢在 SQL 檢視中修改這些相同的實體。

本文說明資料定義查詢,並示範如何使用這類查詢以建立資料表、 索引、 限制式和關聯性。本文也可以協助您決定何時應該使用資料定義查詢。

您想要做什麼?

瞭解使用資料定義查詢

建立或修改資料表

建立索引

建立限制式或關聯

瞭解使用資料定義查詢

與其他查詢中,不同資料定義查詢所擷取的資料。大部分的查詢中使用資料操作語言 (DML),其中包含指定如何合併及操作來產生您想要的資料結果從現有的資料庫物件的資料的結構化查詢語言 (SQL) 命令。資料定義查詢中使用資料定義語言 (DDL),其中包含指定儲存或索引資料和 SQL 命令,以控制使用者存取資料庫物件的資料庫物件的定義的 SQL 命令。在Office Access 2007,資料定義查詢定義或變更資料庫物件的定義。

一般而言,您應該使用圖形設計介面該Office Access 2007 (適用於範例、 設計檢視] 及 [資料庫關聯圖] 視窗) 提供建立資料表、 限制式、 索引和關聯性。不過,如果您有定期刪除和重新建立的資料表,請使用這些介面可能會花時間。使用資料定義查詢,您可以一次,撰寫查詢,然後執行一次在必要時。請考慮使用資料定義查詢,只有當您熟悉 SQL 陳述式,並想要刪除和重新建立特定的表格]、 [限制式] 或 [索引定期。

重要: 使用資料定義查詢修改資料庫物件可能有風險,因為動作並未提供的確認對話方塊。如果有誤,您可以遺失資料或不小心變更表格的設計。使用資料定義查詢在資料庫中修改物件時,則請小心。如果您不是負責維護您正在使用的資料庫,請洽詢系統管理員的資料庫之前執行資料定義查詢。此外,是好的做法,進行您想要執行這類查詢的所有表格的備份複本。

頁面頂端

建立或修改資料表

若要建立表格,您可以使用建立表格] 命令。建立表格] 命令的語法如下 ︰

CREATE TABLE table_name
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

建立表格] 命令只有必要的項目是本身的 [建立表格] 命令與資料表的名稱、 至少有一個欄位中,每個欄位的資料類型。讓我們看看簡單的範例。

假設您想要建立要儲存的名稱、 年份及的價格,使用您考慮購買的汽車的資料表。您想要允許的最大 30 個字元的名稱,然後 4 個字元的年份。若要使用資料定義查詢建立表格,請執行下列動作 ︰

附註: 您必須先啟用資料庫中要執行的資料定義查詢的內容。

  1. 訊息列中,按一下 [選項],然後再按一下 [啟用這個內容

  2. [建立] 索引標籤上,按一下 [其他] 群組中的 [查詢設計]

  3. 關閉 [顯示資料表] 對話方塊。

  4. [設計] 索引標籤的 [查詢類型] 群組中,按一下 [資料定義]。

    在設計格線為隱藏狀態,並會顯示 [SQL 檢視] 物件索引標籤。

  5. 輸入下列 SQL 陳述式 ︰

    建立表格汽車 (名稱 TEXT(30),年 TEXT(4),價格貨幣)

  6. [設計] 索引標籤上,按一下 [結果] 群組中的 [執行]

修改表格

若要修改表格,您可以使用 ALTER TABLE 命令。您可以使用變更表格] 命令來新增、 修改或卸除 (移除) 資料行或限制式。變更表格] 命令的語法如下 ︰

ALTER TABLE table_name predicate

哪裡述詞可以是下列任何一項 ︰

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

假設您想要新增 10 個字元的文字欄位以儲存的每個汽車條件的相關資訊。您可以執行下列動作 ︰

  1. [建立] 索引標籤上,按一下 [其他] 群組中的 [查詢設計]

  2. 關閉 [顯示資料表] 對話方塊。

  3. [設計] 索引標籤的 [查詢類型] 群組中,按一下 [資料定義]。

    在設計格線為隱藏狀態,並會顯示 [SQL 檢視] 物件索引標籤。

  4. 輸入下列 SQL 陳述式 ︰

    ALTER 表格汽車新增欄條件 TEXT(10)

  5. [設計] 索引標籤上,按一下 [結果] 群組中的 [執行]

頁面頂端

建立索引

若要在現有的資料表中建立索引,您可以使用建立索引] 命令。建立索引] 命令的語法如下 ︰

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

只有必要的項目會建立索引] 命令的索引,開啟引數,包含您想要索引的欄位的資料表的名稱和欄位的清單名稱包含在索引中。

  • 建立以遞減順序,這會很有用,如果您經常執行查詢的索引尋找臨界數值的索引的欄位中,或遞減引數原因排序索引的欄位以遞減順序。根據預設,會以遞增順序建立索引。

  • 與主要的引數會為表格的主索引鍵建立索引的欄位。

  • 使用不允許 NULL 引數會要求輸入的值,建立索引的欄位的索引,也就是不允許 null 值。

假設您有名汽車為儲存的名稱、 年、 價格和使用您考慮購買的汽車的條件之欄位的資料表。也假設資料表已成為大型您經常在查詢中包含 [年度] 欄位。在 [年度] 欄位,以協助您更快速地使用下列程序傳回結果的查詢,您可以建立索引 ︰

  1. [建立] 索引標籤上,按一下 [其他] 群組中的 [查詢設計]

  2. 關閉 [顯示資料表] 對話方塊。

  3. [設計] 索引標籤的 [查詢類型] 群組中,按一下 [資料定義]。

    在設計格線為隱藏狀態,並會顯示 [SQL 檢視] 物件索引標籤。

  4. 輸入下列 SQL 陳述式 ︰

    建立索引 YearIndex 開啟汽車 (年)

  5. [設計] 索引標籤上,按一下 [結果] 群組中的 [執行]

頁面頂端

建立限制式或關聯

限制式,建立邏輯條件的欄位的組合,必須符合的值會插入。例如,唯一的條件約束防止受限制的欄位接受想複製現有的值欄位的值。

關聯性是指的是欄位的值的限制式類型或組合來決定是否可以在受限制的欄位或欄位的組合插入值的另一個資料表中的欄位。

若要建立限制式,您可以使用 CONSTRAINT 子句中建立的表格或變更表格的命令。有兩種類型的限制式子句 ︰ 一個用於建立單一欄位,以及另一個用於建立多個欄位的限制式的限制式。

單一欄位的限制式

單一欄位 CONSTRAINT 子句緊跟定義的欄位,其限制,然後語法如下 ︰

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

假設您有名汽車為儲存的名稱、 年、 價格和使用您考慮購買的汽車的條件之欄位的資料表。也假設您經常忘記輸入的值是汽車的條件,您一定要錄製這項資訊。您可以建立的限制式,讓您無法使用下列程序,將欄位保留空白,條件欄位 ︰

  1. [建立] 索引標籤上,按一下 [其他] 群組中的 [查詢設計]

  2. 關閉 [顯示資料表] 對話方塊。

  3. [設計] 索引標籤的 [查詢類型] 群組中,按一下 [資料定義]。

    在設計格線為隱藏狀態,並會顯示 [SQL 檢視] 物件索引標籤。

  4. 輸入下列 SQL 陳述式 ︰

    ALTER 表格汽車 ALTER 欄條件文字限制式 ConditionRequired 並非 NULL

  5. [設計] 索引標籤上,按一下 [結果] 群組中的 [執行]

現在,假設,在一段時間之後, 您注意到應相同的條件] 欄位中有許多類似的值。例如 [汽車部分有條件的值不佳的原因和其他人有錯誤值。您清理的值,使其更加一致之後,您可以建立的資料表,CarCondition,使用名為條件,包含所有您想要使用的汽車條件的值的一個欄位 ︰

  1. [建立] 索引標籤上,按一下 [其他] 群組中的 [查詢設計]

  2. 關閉 [顯示資料表] 對話方塊。

  3. [設計] 索引標籤的 [查詢類型] 群組中,按一下 [資料定義]。

    在設計格線為隱藏狀態,並會顯示 [SQL 檢視] 物件索引標籤。

  4. 輸入下列 SQL 陳述式 ︰

    建立表格 CarCondition (條件 TEXT(10))

  5. [設計] 索引標籤上,按一下 [結果] 群組中的 [執行]

  6. 若要從 [條件] 欄位的汽車表格插入新 CarCondition 資料表中的值,請將下列 SQL 輸入 SQL 檢視] 物件索引標籤 ︰

    插入 CarCondition 選取相異汽車; 從條件

    附註: 在此步驟中的 SQL 陳述式是新增查詢。不同於資料定義查詢,以分號結尾新增查詢。

  7. [設計] 索引標籤上,按一下 [結果] 群組中的 [執行]

若需要插入的汽車資料表的 [條件] 欄位中的任何新值符合 CarCondition 資料表中的 [條件] 欄位的值,然後您可以建立 CarCondition 和汽車之間的關聯欄位命名條件,請使用下列程序 ︰

  1. [建立] 索引標籤上,按一下 [其他] 群組中的 [查詢設計]

  2. 關閉 [顯示資料表] 對話方塊。

  3. [設計] 索引標籤的 [查詢類型] 群組中,按一下 [資料定義]。

    在設計格線為隱藏狀態,並會顯示 [SQL 檢視] 物件索引標籤。

  4. 輸入下列 SQL 陳述式 ︰

    ALTER 表格汽車 ALTER 欄條件文字限制式 FKeyCondition 參照 CarCondition (條件)

  5. [設計] 索引標籤上,按一下 [結果] 群組中的 [執行]

多欄位的限制式

多欄位 CONSTRAINT 子句可以以外的欄位定義子句,僅使用,而且語法如下 ︰

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

讓我們看看另一個使用汽車表格的範例。假設您想要確定沒有汽車資料表中的兩個記錄有相同的一組值的名稱、 年、 條件和價格。您可以建立唯一的條件約束套用至這些欄位中,使用下列程序 ︰

  1. [建立] 索引標籤上,按一下 [其他] 群組中的 [查詢設計]

  2. 關閉 [顯示資料表] 對話方塊。

  3. [設計] 索引標籤的 [查詢類型] 群組中,按一下 [資料定義]。

    在設計格線為隱藏狀態,並會顯示 [SQL 檢視] 物件索引標籤。

  4. 輸入下列 SQL 陳述式 ︰

    變更表格汽車新增限制式 NoDupes 唯一名稱、 年、 條件 (price)

  5. [設計] 索引標籤上,按一下 [結果] 群組中的 [執行]

頁面頂端

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×