學習筆記 MySQL 表的約束(非空,唯一)

2021-09-25 14:37:42 字數 1401 閱讀 3295

學習筆記:

一.約束(constraint )的分類

非空約束

唯一性約束

主鍵約束

外來鍵約束

二.非空約束(not null)

該屬性賦值不能為空

eg:

create table t_users(

id int(4),

name varchar(32) not null,

email varchar(128)

);

三.唯一性約束(unique)

該屬性賦值具有唯一性

eg1(列級約束):

create table t_users(

id int(4),

name varchar(32) not null,

email varchar(128) unique

);

eg2(表級約束):

create table t_users(

id int(4),

name varchar(32) not null,

email varchar(128) ,

unique(email)

);

eg3(表級約束&&聯合約束):

create table t_users(

id int(4),

name varchar(32) not null,

email varchar(128) ,

unique(name,email)

);

此時兩欄位同時相同時才報錯,只有name相同,或只有email相同依舊可以賦值

另一種起別名寫法 (方便刪除約束)

create table t_users(

id int(4),

name varchar(32) not null,

email varchar(128) ,

constraint t_users_name_email_unique unique(name,email)

);

四.非空約束與唯一性約束的聯合使用

eg:

create table t_users(

id int(4),

name varchar(32) not null unique

);

名字既不能為空也不能重複

常用在遊戲起名或身份證中

MySQL學習 主鍵約束 非空約束 唯一約束

約束的概念 對錶中的資料進行限定,保證資料的正確性 有效性和完整性 1 主鍵約束 primary key 1.1注意 1 含義 非空且唯一 2 一張表只能有乙個字段為主鍵 3 主鍵就是表中記錄的唯一標識 1.2 在建立表時新增主鍵約束 create table stu id int primary ...

學習筆記 MySQL 表的約束(主鍵約束)

學習筆記 一.主鍵約束 primary key 主鍵約束的字段值不能相同不能為空,效果同 not null unique 相同 但是主鍵約束後的字段有索引值 如下圖 二.兩種寫法 1.列級約束 create table t user id int 4 primary key,name varchar...

mysql非空約束兩個 MySQL中的或非空約束

sklivz 使用mysql5.0.51a進行測試時,我發現它解析了乙個檢查約束,但沒有強制執行它。我可以插入 空,空 而不出錯。測試了myisam和innodb。隨後使用show create table顯示檢查約束不在表定義中,即使在定義表時沒有給出任何錯誤。這與mysql manual 它說 ...