2013-10-08 59 views
0

我目前正在處理一個SQL任務,要求我: 爲Company和Customer的每個外鍵和索引添加一個索引。添加SQL索引

我創建了需要的3個表,創建了外鍵和主鍵等等。但是我的教科書並沒有提到有關指數的任何內容,我對於該做什麼感到不知所措。如果你有答案,很高興知道你是如何做到的。

表的結構:

客戶

CustomerID (PK) | Company | ContactName | Phone 

訂購

OrderID (PK) | OrderDate | ShippedDate | ShipperID | Freight | CustomerID (FK) 

託運人

ShipperID (PK) | Company | Phone 
+2

檢查數據庫手冊的'CREATE INDEX'聲明。 – Thilo

+0

呵呵? @FerretallicA我在上面的問題上做了編輯,但它說你做到了。同時查看問題的修訂版本 - 我的編輯將以您的名字列出...:|這是一個錯誤還是我瘋了? –

+2

作爲一名學生,你應該自己解決/解決這個問題。 BOL(Online OnLine)是你的朋友。這對我們來說不是「適當的形式」來幫助你。對不起,如果我看起來有點不友好,但我認爲你的老師/教授會同意。 :) – Leptonator

回答

1

你應該看online documentation,但是......

要爲外鍵創建索引:

create index Order_ShipperID on Order(ShipperID); 
create index Order_CustomerID on Order(CustomerID); 

要爲客戶和託運人創建公司指數:

create index Customer_Company on Customer(Company); 
create index Shipper_Company on Shipper(Company); 

索引的名稱可以是任何東西,但我通常遵循這個命名約定。


順便說一句,名稱「訂單」的選擇是一個糟糕的,因爲它是一個保留字。

+0

如果模式指定CustomerID,OrderID和ShipperID是唯一的 - 是否與顯式創建索引相同?您是否需要在添加新條目後重新索引表格? –

+0

如果id列被定義爲「主鍵」,則它們隱式地具有定義在其上的唯一索引。如果您沒有將它們定義爲主鍵,則應該使用唯一索引 - 只需在「create」和「index」之間添加「unique」這個詞。你不需要重新索引添加數據 - 數據庫維護我看到的即時索引 – Bohemian

+0

。在這種情況下 - 鑑於這些字段已經是主鍵(根據OP對錶的描述) - 不是'create index'多餘的嗎? –

0

您可以在任何SQL表列創建索引。在您的表列上創建索引後,您只需發送選擇查詢,並可以邏輯檢查查詢的性能。您可以檢查下一個環節的參考解決方案:

www.blog.mastersoftwaresolutions.com/how-do-database-indexes-work/