MySql DDL 常見約束

2021-10-02 18:55:44 字數 2795 閱讀 2447

含義:一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性

分類:六大約束

新增約束的時機:

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 主鍵,用於保證該字段的值具有唯一性,並且非空 比如學號 ...