資料庫約束總結

2021-10-10 17:36:15 字數 2045 閱讀 7485

1.主鍵約束

特點:非空且唯一

作用:確保表中每一行資料的唯一性

注意:乙個表只能設定乙個主鍵約束,但是主鍵約束可以由多個字段構成(組合主鍵)

建立方式:

a.在建立表的時候設定主鍵約束

欄位名 字段型別 primary

key b.在修改表時新增主鍵約束

//多個列作為組合主鍵用逗號分開

alter

table

《表名》

addconstraint

《主鍵約束名字》

primary

key(

《列名1

>

,《列名2

>..

..);

2.外來鍵約束

特點:唯一涉及到表與表之間關係的約束

建立方式:

a.在建立表的時候設定外來鍵約束

欄位名 字段型別 references 主表名(列名)

//必須是主鍵,同一資料型別,值**於主表的主鍵,或者null

b.在修改表的時候新增外來鍵約束

alter

table

《表名》

addconstraint

《外來鍵約束名》

foreign

key(

《外來鍵列名》

)references

《主表》

(《列名》)[

ondelete

cascade|on

delete

setnull]on

delete

cascade 級聯刪除 刪除主表資料時,將從表中的資料也刪除

ondelete

setnull 刪除主表資料時,將從表中的資料置為空

3.唯一約束

作用:保證字段值的唯一性

建立方式:

a.在建立表的時候設定外來鍵約束

欄位名 字段型別 unique

b.在修改表的時候新增外來鍵約束

alter

table

《表名》

addconstraint

《唯一約束名》

unique

(《列名》

)4.檢查約束

作用:表中的值 更具有實際的意義

建立方式:

a.在建立表的時候設定外來鍵約束

欄位名 字段型別 check

(條件)

b.在修改表的時候新增外來鍵約束

alter

table

《表名》

addconstraint

《檢查約束名》

check

(《條件》)

有約束名稱的(主鍵、外來鍵、唯一,檢查),以上四種

a.更改約束的名稱

alter

table

《表名》

rename

constraint

《舊約束名》

to《新約束名》;

b.刪除主鍵約束

禁用(啟用)

disable、enable

alter

table

《表名》

disable

constraint

《約束名》

;

刪除:alter

table

《表名》

drop

constraint

《約束名》

;5.非空約束

建立方式:

a.在建立表的時候設定非空約束

欄位名 字段型別 not

null

b.在修改表的時候新增非空約束

alter

table

《表名》

modify

《列名》

[字段型別]

not nulll;

c.將非空改為可以為null

alter

table

《表名》

modify

《列名》

[字段型別] nulll;

資料庫約束總結

主鍵約束 create table t id int unsigned auto increment primary key 備註 一張表只能有乙個。唯一鍵約束 create table t id int unsigned auto increment primary key,username va...

資料庫約束

mysql有兩種常用的引擎型別 myisam和innodb。目前只有innodb引擎型別支援外來鍵約束。innodb中外鍵約束定義的語法如下 constraint symbol foreign key index name index col name,references tbl name ind...

資料庫約束

約束的簡介 資料的完整性是指資料的正確性和一致性,可以通過定義表時定義完整性約束,也可以通過規則,索引,觸發器等。約束分為兩類 行級和表級,處理機制是一樣的。行級約束放在列後,表級約束放在表後,多個列共用的約束放在表後。完整性約束是一種規則,不占用任何資料庫空間。完整性約束存在資料字典中,在執行sq...