含義:一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性
分類:六大約束
新增約束的時機:
1.建立表時
2.修改表時
1、新增列級約束
語法:
直接在欄位名和型別後面追加 約束型別即可
只支援:預設、非空、主鍵、唯一
create
table stuinfo(
id int
primary
key,
#主鍵 stuname varchar(20
)not
null
,#非空
gender char(1
),check
(gender=
'男'or gender=
'女')
,#檢查不報錯但沒有用
seat int
unique
,#唯一
age int
default18,
#預設約束
major_id int
references major(id)
#外來鍵 不報錯但沒有用
);
2.新增表級約束
語法:
各自欄位的最後面
【constraint 約束名】 約束型別(欄位名)
create
table stuinfo(
id int
, stuname varchar(20
),gender char(1
),seat int
, age int
, majorid int
,constraint pk primary
key(id)
,#主鍵
constraint uq unique
(seat)
,#唯一鍵
constraint ck check
(gender =
'男'or gender =
'女')
,#檢查 沒有效果
constraint fk_stuinfo_major foreign
key(majorid)
references major(id)
#外來鍵)
;
通用寫法:
create
table
ifnot
exists stuinfo(
id int
primary
key,
stuname varchar(20
)not
null
, gender char(1
),seat int
unique
, age int
default18,
majorid int
,constraint fk_stuinfo_major foreign
key(marjorid)
references major(id)
);
建立乙個表沒有約束
create
table stuinfo(
id int
, stuname varchar(20
),gender char(1
),seat int
, age int
, majorid int
);
修改
#1.新增非空約束
alter
table stuinfo modify
column stuname varchar(20
)not
null
;#2.新增預設約束
alter
table stuinfo modify
column age int
default18;
#支援列級約束的都可以這麼寫
#表級約束
alter
table stuinfo add
primary
key(id)
;#新增外來鍵
alter
table stuinfo add
foreign
key(majorid)
references major(id)
;
修改表時刪除約束
#1.刪除非空約束
alter
table stuinfo modify
column stuname varchar(20
)null
;#2.刪除預設約束
alter
table stuinfo modify
column age int
;#3.刪除主鍵
alter
table stuinfo drop
primary
key;
#4.刪除唯一
alter
table stuinfo drop
index seat;
#5.刪除外來鍵
alter
table stuinfo drop
foreign
key majorid;
《MySQL DDL語言的學習 約束》
含義 一種限制,用於限制表中的資料,為了保證表中資料的準確性和可靠性 分類 六大約束 not null 非空,用於保證該字段的值不能為空 如 姓名 學號 default 預設,用於保證該字段有預設值 不給值就用預設值,如 性別 primary key 主鍵,用於保證該字段的值具有唯一性,並且不能為空...
mysql ddl注意 MYSQL DDL注意事項
ddl的基礎語法及設計工具 資料定義語言 它定義了資料庫的結構 和 資料表的結構。在ddl中,我們常用的功能是增刪改,分別對應的命令是 create drop和alter。需要注意的是,在執行ddl的時候,不需要commit,就可以完成執行任務。我們將字符集設定為utf8,排序規則為utf8 gen...
MySQL常見約束
1 含義 一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性 2 分類 六大約束 not null 非空,用於保證該字段的值不能為空 比如姓名 學號等 default 預設,用於保證該字段有預設值 比如性別 primary key 主鍵,用於保證該字段的值具有唯一性,並且非空 比如學號 ...