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

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

您可以建立及修改表格、 限制式、 索引和關聯來撰寫資料定義查詢在 SQL 檢視中。

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

附註: 您無法在 Web 資料庫中使用這些程序。

本文內容

概觀

建立或修改資料表

建立索引

建立限制式或關聯

概觀

與其他查詢中,不同資料定義查詢所擷取的資料。不過,資料定義查詢會使用資料定義語言來建立、 修改或刪除資料庫物件。

附註: 資料定義語言 (DDL) 是結構化查詢語言 (SQL)。

資料定義查詢可以很方便。您可以定期刪除,然後重新執行來建立您的資料庫結構描述的某些部分只是某些查詢。請考慮使用資料定義查詢,如果您熟悉 SQL 陳述式,且您想要刪除和重新建立特定的資料表、 限制式、 索引或關聯性。

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

重要: 建立備份的所有表格相關之前執行資料定義查詢。

DDL 關鍵字

關鍵字

請使用

CREATE

建立索引或已經存在的資料表。

ALTER

修改現有資料表或資料行。

DROP

刪除現有的資料表、 欄或限制式。

ADD

新增至資料表的資料行或限制式。

COLUMN

使用 [新增],變更,或卸除

限制式

使用 [新增],變更,或卸除

INDEX

建立搭配使用

TABLE

使用 ALTER,建立,或卸除

頁面頂端

建立或修改資料表

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

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

只需要建立資料表] 命令的項目本身的 [建立表格] 命令,以及的名稱的表格,但通常您會想要定義某些欄位或其他方面的資料表。請考慮這個簡單的範例。

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

附註: 您可能必須啟用順序資料定義查詢執行的資料庫的內容︰

  • 按一下 [訊息列] 上的 [啟用內容]

建立表格

  1. [建立] 索引標籤上,按一下 [巨集與程式碼] 群組中的 [查詢設計]

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

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

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

  4. 輸入下列 SQL 陳述式︰

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

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

修改表格

若要修改表格,您可以使用 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. 使用 ALTER TABLE 陳述式,以建立資料表的主索引鍵︰

    變更資料表 CarCondition ALTER 欄條件文字限制式 CarConditionPK 主索引鍵

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

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

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

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

使用 [限制式中建立關聯

若需要插入的汽車資料表的 [條件] 欄位中的任何新值符合 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 支援專員連絡以深入了解您的意見。

×