數據庫表約束的創建與使用之主鍵約束


        我們直接開門見山,首先我們先來確定什么是約束:數據表的約束是在表中定義的用於維護數據庫完整性的一些規則。那么約束的作用也就很明顯了,我們可以通過表中的列定義約束可以防止將錯誤的數據插入表中,也可以保持表之間數據的一致性。接下來我們來了解幾個概念:

實體完整性: 規定表的每一行在表中是惟一的實體。又稱行完整性,要求在表中不能存在完全相同的行。通過PRIMARY KEY(主鍵)、Unique(唯一約束)、Identity(標識字段)實現。

參照完整性: 又稱引用完整性。指表間的規則,作用於有關聯的兩個或兩個以上的表, 通過使用主鍵和外鍵(或唯一鍵)之間的關系, 使表中的鍵值在相關表中保持一致。通過 Foregin Key(外鍵)實現。

用戶自定義完整性:指針對某一具體關系數據庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。  通過NOT NULL(非空)、default(默認)、check(檢查)實現。 

我們來看一下約束的分類:

主鍵約束: 

  • 主鍵約束使用primary key表示,用來保證實體的唯一性。也就是使用主鍵約束可以確保在整個表中存儲的數據不存在重復值。一般是將Id列設置為主鍵。
  • 主鍵列的值能唯一標識表中的每一行,一個表只能有一個主鍵,而且主鍵約束中的列不能為空值。只有主鍵列才能被作為其他表的外鍵所創建。
  • 由此可見主鍵已經有了唯一約束和非空約束的作用了。所以圖中標識出了要注意主鍵約束與唯一約束、非空約束的關系。

主鍵約束具體使用如下圖所示:

注:使用圖形化界面創建約束的方法本文不做講解了。

 由圖中我們可知,創建主鍵約束有兩種途徑,一種是在創建表時同步創建主鍵約束,另外一種是表創建完成以后我們再創建主鍵約束。以學生表(Student)為例:

創建表時創建主鍵約束:

CREATE TABLE Student
(
    Id INT PRIMARY KEY --PRIMARY KEY就是創建主鍵約束的關鍵字    
)

 創建表成功后創建主鍵約束:

ALTER TABLE Student ADD CONSTRAINT  PK_Student_Id PRIMAERT KEY(Id)   

需要注意的是表創建完成以后創建約束屬於修改表,所以需要以ALTER TABLE 開頭表示修改表,ADD CONSTRAINT是添加約束的關鍵字,PK_Student_Id是創建約束的名字,PRIMARY KEY表示約束的種類,括號里面的Id表示在Id列上創建約束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM