簡要介紹資料庫表的約束和主要型別、作用?

  • 作者:由 匿名使用者 發表于 舞蹈
  • 2022-03-23

簡要介紹資料庫表的約束和主要型別、作用? 匿名使用者 1級 2014-05-23 回答

首先應該說下什麼是資料庫約束?

資料庫約束是為了保證資料的完整性而實現的一套機制,它具體的根據各個不同的資料庫的實現而有不同的工具。所以我們在學習約束的時候就會看到域完整性(Domain Integrity)、實體完整性(Entity Integrity)、參照完整性(Referential Integrity)與使用者定義完整性(User-defined Integrity)的不同的約束分類。但我今天就說下我們或是我們有些人剛接觸資料庫的同學,並且從SQL語言基礎瞭解並學習到的。

1、非空約束(Not Null Constraint)

這個可能大家都瞭解,就是我們在新增那個表 userinfo,在id、name後面都添加了not null,就是有些列不能把它設為空,相信大家都理解,我就說下我在一個英文資料看到的一段英文:The not null specification prohibits the insertion

of a null value for this attribute。Any database modifucation that would cause a null to be inserted in an attribute declared to be not null generates an error diagnostic。(大家就得自己翻譯了)

2、唯一約束(Unique Constraint)

一個唯一約束並不包括一個NULL值。直接在欄位定義後加入UNIQUE即可定義該唯一約束。

1) 一個表只能建立一個主鍵約束,但一個表可以根據需要對不同的列建立若干unique約束

2)主鍵欄位不允許為null ,unique允許為空

3)一般建立主鍵約束時,系統自動產生簇索引,unique約束自動產非簇索引

3、檢查約束(The Check Clause)

透過在定義資料庫表裡,在欄位級或者是在表級加入的檢查約束,使其滿足特定的要求。

我來舉一個例子

create table student (

name varchar(15) not null,

student_id varchar(15),

degree_level varchar(15),

primary key(student_id),

check(degree_level in(‘Bachelors’,‘Masters’,‘Doctorate’)));

Here ,we use the check clause to simulate an enumerated type by specifying that degree_level must to be one of ‘Bachelors’,‘Masters’,‘Doctorate’;

4、主鍵約束(Primary Key Constraint)

其實主鍵約束就是一張表只能建立一個主鍵約束,其實就是唯一約束+非空約束。大家透過上課討論那麼多關於“依賴”的事情,估計大家都能理解了

5、外健約束( Foreign Key Constraint)

Foreign Key Constraint主要是確保同一個表或者不同表之間的引用完整性,所以必須引用一個PRIMARY KEY或者UNIQUE約束,使用者必須在應用表上具有REFERENCES許可權;一個表中最多可以有31個外部鍵約束; 在臨時表中,不能使用外部鍵約束; 主鍵和外部鍵的資料型別必須嚴格匹配 。這個就不多說了給大家推薦一個網站http://tech。sina。com。cn/s/2010-01-04/00481199365。shtml

系摘抄。。。。

網上隨便搜尋一下,大把大把的~~~

Top