什麼是資料庫約束,資料庫設定約束條件有什麼好處

2021-03-12 14:56:35 字數 5277 閱讀 7769

1樓:

資料庫約束是對錶中的資料進行進一步的限制,保證資料的正確性、有效性和完整性。

約束通常與一個表相關聯,並使用create constraint或create assertionsql語句建立。

所有的關聯式資料庫都支援對資料表使用約束,通過約束可以更好地保證資料表裡資料的完整性。

是表上強制執行的校驗規則,除此之外,當表中資料存在相互依賴性時,可以保護相關資料不被刪除。約束通常無法修改。

擴充套件資料

資料庫中的五大約束:

1、主關鍵字約束

主關鍵字約束指定表的一列或幾列的組合的值在表中具有惟一性,即能惟一地指定一行記錄。每個表中只能有一列被指定為主關鍵字,且image 和text 型別的列不能被指定為主關鍵字,也不允許指定主關鍵字列有null 屬性。

2、外關鍵字約束

外關鍵字約束定義了表之間的關係。當一個表中的一個列或多個列的組合和其它表中的主關鍵字定義相同時,就可以將這些列或列的組合定義為外關鍵字,並設定它適合哪個表中哪些列相關聯。

3、唯一性約束

惟一性約束指定一個或多個列的組合的值具有唯一性,以防止在列中輸入重複的值。唯一性約束指定的列可以有null 屬性。由於主關鍵字值是具有唯一性的,因此主關鍵字列不能再設定唯一性約束。

唯一性約束最多由16 個列組成。

4、檢查約束

檢查約束對輸入列或整個表中的值設定檢查條件,以限制輸入值,保證資料庫的資料完整性。可以對每個列設定複合檢查。

5、預設約束

預設約束通過定義列的預設值或使用資料庫的預設值物件繫結表的列,來指定列的預設值。sql server 推薦使用預設約束,而不使用定義預設值的方式來指定列的預設值。

2樓:匿名使用者

起始約束就是一種限制,限制你做某些事情。比如表中某欄位設定成了主鍵約束,那該欄位就只能是為一的,不能有重複的資料出現,這就限制了你的一些許可權。其他的約束性質差不多,也是限制一些東西,呵呵

3樓:提莫的蘑菇莊園

對資料的一種檢查機制有check default forenign primarykey 等等

4樓:匯錦大黑豬

約束包括:not null,unique,primary key,foreign key以及check等5種型別。

5樓:匿名使用者

6樓:熱愛資料庫的同學

sql 約束用於規定表中的資料規則。

如果存在違反約束的資料行為,行為會被約束終止。

約束可以在建立表時規定(通過 create table 語句),或者在表建立之後規定(通過 alter table 語句)。

具體用法如下:

在 sql 中,我們有如下約束:

not null – 指示某列不能儲存 null 值。

unique – 保證某列的每行必須有唯一的值。

primary key – not null 和 unique 的結合。確保某列(或兩個列多個列的結合)有唯一標識,有助於更容易更快速地找到表中的一個特定的記錄。

foreign key – 保證一個表中的資料匹配另一個表中的值的參照完整性。

check – 保證列中的值符合指定的條件。

default – 規定沒有給列賦值時的預設值。

在下面的章節,我們會詳細講解每一種約束。

-from shulanxt

資料庫設定約束條件有什麼好處?

7樓:嘟嘟嘟兜

資料庫約束是為了保證資料的完整性而實現的一套機制,它具體的根據各個不同的資料庫的實現而有不同的工具。

一般來說有以下幾種實現方式:

1、檢查約束:

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

比如以下的表定義:

crate table student(

id serial,

name varchar(10),

scrore integer check (scrore > 0));

定義分數不能小於0。

也可以在表級定義:

check (欄位1 祕欄位2之間的關係)

2、非空約束:

這個大家應該很熟悉了。直接在欄位後面加上:not null。

3、唯一約束:

定義一個唯一約束但是它並不包括null值。直接在欄位定義後加入unique即可定義一個唯一約束。

4、主鍵約束:

sql 92建議在建立一個表時定義一個主鍵:它其實就是:唯一約束+非空約束。

5、外來鍵:

所有約束裡數這個約束最有意思了:比如說有這樣一件事,你需要做一個學生查詢的網頁。那麼為了方便,你將建立三個資料表:

一個是學生情況表:

create table student(

id serial primary ke,

name varchar(10),

.......

);一個表是記錄所開的課程

create table class(

class_id varchar(5) primary key,

describe varchar(20)

.....

);一個表是記錄學生成績的表:

create table score(

id integer references student,

class_id varchar(5) references class,

score integer check (score > 0)

);這個時候你會發現以下幾件事:

如果你在成績表裡輸入不存在的學生和課程,資料系統將拒絕。如果你要刪除一個學生,但是他已經在成績表裡有記錄,資料庫將拒絕刪除這個學生的記錄。

那麼我們現在來看,前面一個對我們是有利的,因為誰都不想一個學生無緣無故的有了一個成績的記錄,但是在刪除的時候就會比較麻煩了,有時候我的確是想刪除這個學生。那麼我總不能在應用程式裡照顧得那麼周到吧。不要緊我們在定義資料表的時候只在外來鍵那一樣加入以下控制就ok了,我們來重新定義資料表 score

create table score(

id integer references student on update cascade on delete cascade, //我們希望在學生記錄改變時自動改變分數記錄,在刪除學生級聯刪除分數記錄

class_id varchar(5) references class on update cascade on delete

restrict, //我們希望在改變課程時自動改變分數記錄表裡關於課程的引用,但是不希望刪除課程時級聯刪除分數。

.....

);這樣我們就可以很好做到資料完整了。

8樓:匿名使用者

可以防止資料庫中存在不符合語義的資料,也就是防止資料庫中存在不正確的資料,保障了資料庫的正確性、相容性和安全性。

資料庫的五種約束關係是什麼?主外來鍵有什麼用。求教

9樓:

資料庫的約束是為了體現資料庫

完整性的。

實體完整性有primary key (主鍵)參照完整性有foreign key (外來鍵)使用者自定義完整性有:列表非空(not null),列表唯一(unique),

檢查列值是否滿足一個布林表示式(check)通常就上面這5個了

後面更深還會有其他的,但是估計你現在還不用現在我給你解釋,主外來鍵

主鍵就是在一個表中,能夠唯一代表各元組值得就像我們的身份證號,全世界只有一個,是獨一無二的屬性外來鍵就是在一個表中,參照其他表中的主鍵的本表屬性就像在sc表中有sno不是主鍵,但它參照了s表中的主鍵sno,所以sno在sc表中就是外來鍵啦

希望我的回答能讓你理解這中知識。

不懂可以再問

10樓:匿名使用者

約束:為了保證表中資料的正確性和有效性的一種限制。

約束:主鍵約束:保證記錄的不重複,並且不能為空非空約束、檢查約束:限制莫一列的取值、預設值約束、唯一性約束:記錄唯一,可以有一行資料為空

外來鍵約束:這個是實現表與表之間的約束,從表的欄位值必須在主表中存在,比如

學生表和課程表都有一個公共欄位,學號,學號欄位在學生表中充當主鍵,在課程表中是外來鍵,那就保證了,所有參加考試學生必須都在學生表中。

資料庫裡面建表和約束是什麼

11樓:汲玉花鞏子

約束check表示你插進資料庫表中的資料只能是哪個型別,或者區間等,就相當於只允許你輸入某一類資料,純手打,望採納

12樓:賀淑珍光女

主鍵,外來鍵,自定義的各種約束,主鍵是唯一標示表中的一行資料的欄位,外來鍵用來建立表與表之間的聯絡,第三個是實際情況和使用者對錶中某些欄位的限制要求

資料庫問題 sql server 資料庫中有哪幾種約束?各有什麼作用?

13樓:劉侶含

主要四種

1實體完整性約束(每一行反應不同的實體)

通過索引,唯一約束。主鍵約束或標識屬性來體現2域完整性約束(指給定列的輸入有效性)

通過限制資料型別,檢查約束,輸入格式,外來鍵約束,預設值,非空等體現3引用完整性約束(表之間的聯絡)

通過主外建

4自定義完整性約束(根據使用者的需求)

14樓:賓士

如表:學生資訊表(學生學號,姓名,性別,系別號)系別資訊表(系別號,系別名)

1、實體完整性約束--就是常說的主鍵約束,用來區分兩條不同的記錄。

上面的學生編號建成主鍵後,通過它可以區分學生的記錄。

2、參照完整性--就是常說的外來鍵約束,用來保證資料的整合性。

上面的 學生資訊表 中的 系別號 就是一種情況,它必須在 系別資訊表 中存在在可以,系別資訊表 中的 系別號 就可以設定成 學生資訊表 的外來鍵。

3、域完整性約束--就是常說的check約束上面的學生資訊表中的 性別 欄位只能有 男或者女,這樣就可以建一個check約束,限制該欄位只能輸入 男或者女。

---以上,希望對你有所幫助。

15樓:匿名使用者

很多 我現在手裡面也沒有書

憑記憶說幾個吧

1。主鍵外來鍵

2。唯一

3。範圍。。。

16樓:匿名使用者

這個要看資料庫的書籍啊。基礎問題不能離開課本。

關於MySQL資料庫的unique約束,建表時unique

對於你這個例子,一般做法是 primary key name 這表示本表的name欄位不允許重複,而且也不允許為空,對pass欄位沒有任何限制,這是我們實際需要的。unique name 表示限制表中的name欄位不允許重複,這個可以理解,因為一般一個使用者只允許一個密碼。unique pass 表...

資料庫的作用是什麼,什麼是資料庫?資料庫有什麼用?

在大學的計算機教科書中,資料 庫是被這樣解釋的 資料庫是計算機應用系統中的一種專門管理資料資源的系統。資料有多種形式,如文字 數碼 符號 圖形 影象以及聲音等。資料是所有計算機系統所要處理的物件。人們所熟知的一種處理辦法是製作檔案,即將處理過程編成程式檔案,將所涉及的資料按程式要求組織成資料檔案,用...

mysql資料庫和access資料庫有什麼區別

mysql和access的區別 mysql特性 很便宜,通常是免費的 網路承載少 查詢 優化 可以簡便的應用程式通過mysql做備份 mysql操縱簡單,易上手,且為各種不同的資料格式提供有彈性的擴充套件介面 odbc access特性 簡單易學,使用方便,開發效率高。mysql對於大多數使用者而言...