首頁  >  文章  >  資料庫  >  MySQL資料庫約束類型有哪些

MySQL資料庫約束類型有哪些

WBOY
WBOY轉載
2023-05-28 23:02:001025瀏覽

資料庫中的限制,顧名思義即是對插入資料庫中的資料進行限定,這麼做的目的是為了保證資料的有效性和完整性。這樣就大幅提高了資料庫中資料的質量,節省了資料庫的空間和呼叫資料的時間。

MySQL資料庫約束類型有哪些

非空約束(NOT NULL)是一種列級約束,用來指定某列不允許為空。它只能使用列級約束語法定義。

SQL中的null值,null不區分大小寫,具有以下特徵:所有資料型別的值都可以是null,包括int、float、boolean等。空字串不等於null,0也不等於null。如果要為指定列設定非空約束,則只需在列定義後新增 "not null"。例如,在建立表格時:

create table t_test
(
   id int not null,
   name varchar(255) default 'xyz' not null,
   gender varchar(2) null
);

使用alter table修改表格時增加或刪除非空約束,例如:

#增加非空约束alter table t_test modify gender varchar(2) not null;#取消非空约束alter table t_test modify gender varchar(2) null;#取消非空约束,并指定默认值alter table t_test modify name varchar(255) default 'abc' null;

2.UNIQUE: 唯一約束,指定某列或幾列組合不能重複。

在資料庫中,雖然唯一約束的欄位不允許出現重複值,但可以出現多個null值,因為null不等於null。同一個表內可建立多個唯一約束,唯一約束也可有多列組合而成。當為某列建立唯一約束時,MySQL會為該列建立唯一索引, 如果不為唯一約束命名,則該唯一約束預設與列名相同。唯一約束可以使用列級語法建立,也可以使用表格級語法建立。只有透過表格級語法,才能為多列設定組合約束或指定約束名稱。

使用列級語法建立唯一約束,只需要在列定義後增加unique關鍵字即可:

#创建表时建立唯一约束,使用列级语法建立create table unique_test
(
   #建立非空约束,意味着id不能为null   id int not null,
   #建立唯一约束,意味着多行数据的该列值不能相等   name varchar(255) unique
);

表級語法建立唯一約束的格式:[constraint 約束名稱] unique (列名[,列名,…]),上面的表級約束語法格式既可以放在create table語句中與列定義並列,也可以放在alter table語句中使用add關鍵字添加:

#创建表时,使用表级语法创建唯一约束create table uniques_test2
(
   #为id建立非空约束,意味着id不能为null   id int not null,
   name varchar(255),
   pass varchar(255),
   #使用表级语法为name建立唯一约束   unique (name),
   #使用表级语法为pass建立唯一约束,并指定约束名为test2_uk   constraint test2_uk unique (pass)
);#创建表时,使用表级语法建立组合列的唯一约束create table unique_test3
(
   id int not null,
   name varchar(255),
   pass varchar(255),
   #指定name和pass两列组合不能重复   constraint test3_uk unique (name, pass)
);#在修改表时,使用add关键字来增加唯一约束alter table unique_test3 add unique (id, name);#在修改表时,使用modify关键字,来为单列设置唯一约束alter table unique_test3 modify name varchar(100) unique;

MySQL中刪除唯一約束:

alter table tableName drop index 约束名;
   例句:#删除unique_test3表中的test3_uk唯一约束alter table unique_test3 drop index test3_uk;

3.PRIMARY KEY: 主鍵約束,指定該列的值可以唯一地識別該筆記錄。

"外鍵"是一種約束,它指定該行記錄與主表中的一筆記錄相關聯,主要的目的是確保參考完整性。

5.CHECK(MySQL不支援): 檢查約束,指定一個布林表達式,用來指定對應列的值必須滿足該表達式。

#

以上是MySQL資料庫約束類型有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除