資料庫sql參照完整性 在表外設定約束

2021-08-18 04:05:43 字數 1794 閱讀 7750

1.主鍵以學生表為例,給學號sno設定主鍵

在表內設定主鍵為:

create table student  

( sno char(20) primary key,--學號

sname char(20),--姓名

*** char(20)--性別

)

在表外設定主鍵:

create table student  

( sno char(20),--學號

sname char(20),--姓名

*** char(20)--性別

) go

alter table student

alter column sno char(20) not null

go

alter table student

add constraint pk_sno primary key(sno)

2.外來鍵

例:student表中的sclass參照class中的clno

alter table student    

add foreign key (sclass)references class(clno)

3.非空約束

在表內:

create table student  

( sno char(20) primary key,--學號

sname char(20) not null ,--姓名

*** char(20)--性別

)

表外:

例:設定學號為非空

create table student  

( sno char(20),--學號

sname char(20),--姓名

*** char(20),--性別

) go

alter table student

alter column sno char(20) not null

4.唯一性約束

例:給student中的sno設定為唯一

alter table student  

add constraint uq_sno unique(sno)

5.預設約束

例:為student表中的sps設定預設為:共青團員

alter table student  

add constraint df_sps default '共青團員'for sps

6.檢查約束

例:約束學生表中的***只允許取:男或女

alter table student  

add constraint ck_*** check(*** ='男'or *** ='女' )

7.刪除約束

例:刪除學生表中的***只允許取:男或女

alter table student  

drop constraint ck_***

資料庫中的參照完整性(Foreign Key)

之前在專案中遇到了這樣乙個問題,我舉得簡單的樣例來說明。比方我們有兩個表,乙個表 department 存放的是部門的資訊,比如部門id,部門名稱等 還有乙個表是員工表 staff 員工表裡面肯定要存放每乙個員工所在的部門。那問題來了,假設我們這個時候刪除了部門表中的某條記錄,在staff表中會發生...

T SQL學習之路之資料庫完整性之參照完整性

表的一列或幾列的組合的值在表中唯一地指定一行記錄,擇這樣的一列或多列的組合作為主鍵可實現表的實體完整性,通過定義 primary key約束來建立主鍵。外來鍵約束定義了表與表之間的關係,通過將乙個表中一列或多列新增到另乙個表中,建立兩個表之間的連線,這個列就成為第二個表的外來鍵,通過定義 forei...

資料庫完整性

完整性約束條件 實體完整性給出了主鍵的取值的最低約束條件 規則是 主鍵的各個屬性都不能為空。參照完整性給出了在關係之間建立正確的聯絡的約束條件 規則是 外來鍵或者取空值 此時要求外來鍵的各個屬性均為空值 或者等於被參照關係中的主鍵的某個值。使用者自定義完整性 關係數控應用系統中的關係往往還應該滿足一...