什麼是主鍵:
資料庫主鍵是指表中乙個列或者列的組合,其值能夠唯一的標識表中的每乙個行。這樣的一列或者多列成為表的主鍵,通過它可以強制表的實體完整性。當建立或者更改表時可以通過定義primary key約束來建立主鍵,乙個表只能有乙個主鍵約束,而且主鍵約束中的列不能是空值,由於主鍵約束確保唯一資料,所一經常來定義標識列。
每乙個表都必須定義乙個主鍵嗎?
我個人認為這個問題要看我們的表的功能,利用來儲存大量資料,並需要經常查詢的,建立主鍵可以加快查詢效率,從而降低伺服器的負擔,但是如果沒有這樣的需求,建立主鍵反而消耗資源,所以這種情況下就沒有必要建立主鍵了。
有些人認為:雖然在有些資料庫中,主鍵不是必須的,但是最好為每個表都設定乙個主鍵,不管是但主鍵還是復合主鍵,它存在代表著表結構的完整性,表的記錄必須得有唯一區分的字段,主鍵主要是用於其他表的外來鍵關聯,以及本記錄的修改與刪除。
主鍵的作用:
1、 從上面的定義可以看出,主鍵是用於唯一標識資料庫表中一行資料的。
2、 作為乙個可以被外來鍵有效引用的物件。
主鍵的設計原則:
1、 主鍵應當是對使用者沒有意義的,比如說使用者登陸乙個系統的時候的登入id;而這種情況就不可能了:「學生表」需要支援這樣的需求「學生登出後,可以重新啟用自己的資訊,而且還要保持自己的號碼跟原來的一直」,這樣的話主鍵就不能滿足要求了。
2、 唯一性,這個原則就不用多說了。
3、 非空性:主鍵的值是不可重複的,也不可以為空。
什麼是外來鍵:
外來鍵是建立於表與表之間的聯絡,方便程式的編寫。
外來鍵的特點:
1、 外來鍵保證了資料的完整性
2、 使用外來鍵,簡單直觀,可以直接在資料模型中體現,無論是設計、維護等等。
3、 外來鍵在除錯程式的時候可能會帶來一些麻煩。
如何插入外來鍵:
如上圖所示,資料庫中有三個表,下面我們給news和category表設定關係
如圖所示,郵件單擊「資料庫關係圖」,選擇「新建資料庫關係圖」
出現上面的「新增表」
選擇要新增的表的名稱,將這三個表全部新增到裡面去(如下圖所示)
我們將news的categoryid設定為category的id的外來鍵
單擊新增按鈕
選擇上邊的「表和列規範」左邊的三個小點號的按鈕,點開後如下圖所示
SQL SERVER資料庫表主鍵設計(一)
1.序言 當前,隨著資訊量的急劇增加,對於資料的儲存和管理方式,各企業都逐漸擺脫了之前的依靠檔案系統 文字檔案或者excel 或者一些桌面型的小型資料庫系統 如access foxbase或者dbase 的狀態,轉而通過一些大型資料庫來管理企業的資訊。這些大型資料庫系統包括oracle ms sql...
SQLserver資料庫 表中主鍵約束
下面就讓我們分別 這五類約束設定新增以及刪除等用法吧!1 主鍵約束 建立表時設定約束的方式有兩種 一種是在列級設定,另一種是在表級設定。在建立表時設定主鍵約束create table table name column name datatype constraint constraint name...
資料庫主鍵和索引關聯
一直以來不能夠分清主鍵和索引的關係,在此梳理以備不時之需 1 主鍵 主鍵就是能夠唯一標識表中某一行的屬性或屬性組,乙個表只能有乙個主鍵,但可以有多個候選索引。主鍵主要作用 1 惟一地標識一行。2 作為乙個可以被外來鍵有效引用的物件。2 索引 包含著對資料表裡所有記錄的引用指標。區別 乙個表中可以有多...