主鍵,外來鍵和索引

2021-05-26 20:29:27 字數 1319 閱讀 8253

主鍵和索引的區別:

主鍵是索引,但索引不一定是主鍵。

主鍵具有唯一性,而只有唯一性索引才具有唯一性;主鍵的值不能為空,不能重複。 索引可以在程式中動態建立刪除。也可以是任何有序的字段.

如果在乙個表中,列a、b、c 被設為主鍵的情況下,當需要將a,b,c 設為索引時,a,b,c被設為主鍵,資料庫自動會建立索引,不需要再建索引;另外需要對列a,b,c,d,e建立索引時,不能只對d,e建立索引,必須在索引中包含所有的索引列即:a,b,c,d,e.

主鍵、外來鍵、索引:

索引只是為了排序與加快瀏覽度!也可對錶資料作證!乙個表只能有乙個主鍵,外來鍵與主鍵差不多!兩者都能將表聯絡起來,定義規則!

主鍵,每一張表中必須有的,它是唯一的,唯一能標識每一條記錄.

外來鍵,一張表中的外來鍵在另一張表中只能是主鍵,一般情況下,要刪除一張表中的主鍵必須首先要確保其它表中的沒有相同外來鍵(即該表中的主鍵沒有乙個外來鍵和它相關聯)   

索引只是加快查詢,排序速度,主鍵和外來鍵定義後可保證資料完整性,省去編寫某些觸發器。主鍵最好每張表上都定義,小資料庫用唯一索引也可以。

每個表最好有主鍵,用來保證資料完整性。表的外來鍵是另一表的主鍵,外來鍵將兩表聯絡起來。    索引只是提高查詢排序的速度。

例子:create table sh_cpzd

( f_cpbh char(13)              not null,

f_cpmc char(30)              not null,

f_jldw char(4)               not null,

f_sslb char(1)               ,

f_cpjs integer               not null,

f_sjbh char(13)              ,

f_sfmc char(1)               not null,

primary key (f_cpbh, f_cpmc)

); comment on   table   sh_cpzd is   '產品字典';   

comment on   column sh_cpzd.f_cpbh   is '產品編號';   

comment on column sh_cpzd.f_cpmc is '產品名稱';

那麼primary key (f_cpbh, f_cpmc)是什麼意思?該錶的主鍵是啥?

rimary key (f_cpbh, f_cpbh)表示用f_cpbh和f_cpbh建立聯合主鍵.

聯合主鍵是每個記錄的兩列都一樣時出錯

還在對這些進一步驗證才能確保其正確性...

索引 主鍵 外來鍵

參 索引的優點 加快查詢表記錄的速度。索引的缺點 會減慢寫的速度 如 insert update 占用物理儲存空間。2 簡述普通索引與主鍵的約束規則。參 1 index普通索引 乙個表中可以有多個index欄位 欄位的值允許有重複,且可以賦null值 經常把做查詢條件的字段設定為index欄位 in...

主鍵 外來鍵 索引

1 主鍵 外來鍵 索引 主鍵外來鍵 索引定義 唯一標識一條記錄,不能重複,不能為空 表的外來鍵是另一張表的主鍵,外來鍵可以重複,也可以為空值 索引沒有重複,可以有乙個空值 作用用來保證資料的完整性 用來和其他表建立聯絡 提高資料查詢的速度 個數主鍵只能有乙個 乙個表可以有多個外來鍵 乙個表可以有多個...

SQL主鍵 外來鍵 索引

主鍵 唯一區分出不同的記錄的字段。常見可作為id欄位的型別 自增整數型別 全域性唯一guid型別 guid演算法通過網絡卡mac位址 時間戳和隨機數生成的字串 外來鍵 實現一對多 多對多和一對一的關係。可以通過資料庫來約束,也可以不設定約束,僅靠應用程式的邏輯來保證。一對多 學生表 students...