.主鍵,外鍵和索引

 

主鍵和索引的區別:

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

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

如果在一個表中,列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建立聯合主鍵.

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章