SQL基礎6 完整性約束

2021-09-26 06:12:25 字數 4227 閱讀 8382

2.修改表時新增約束:alter table ...

3.刪除約束:alter table

注意完整性約束:用於限制欄位的值必須滿足一定的條件,從而保證資料表中的資料的一致性和完整性!!!

1.常見的約束:

2.約束的特性:

例:

create

table major(

id int

primary

keyauto_increment

, majorname varchar(20

));

列級約束語法:字段宣告 + 約束名

create

table

ifnot

exists constrainttab(

id int

primary

key,

#主鍵 name varchar(20

)not

null

unique

,#非空+唯一

gender char

default

'男',

#預設 age int

check

(age between

18and

120)

,#檢查

seat int

unique

,#唯一

majorid int

,constraint fk foreign

key(majorid)

references major(id)

#外來鍵:fk約束名

);

表級約束語法:約束型別(欄位名)

[

constraint 約束名] 約束型別(欄位名)

[references 主表(欄位名)

]

案例:

create

table

ifnot

exists constrainttab(

id int

, name varchar(20

)not

null

,# 非空

gender char

default

'男',

# 預設

age int

, seat int

, majorid int

,constraint fk foreign

key(majorid)

references major(id)

,#外來鍵

primary

key(id)

,#主鍵

constraint uq unique

(seat)

,#唯一

constraint ck check

(age between

10and

100)

#檢查)

;

建立案例表:

drop

table

ifexists constrainttab;

create

table

ifnot

exists constrainttab(

id int

, name varchar(20

),gender char

, seat int

, age int

, majorid int

);

1.新增主鍵:primary key

alter

table constrainttab modify

column id int

primary

key;

alter

table constrainttab add

primary

key(id)

;# 對比新增列:

alter

table stu add

column classname varchar

(100

);

2.新增唯一鍵: unique

alter

table constrainttab modify

column seat int

unique

;

alter

table constrainttab add

unique

(name)

;

3.新增檢查約束:check

alter

table constrainttab

modify

column age int

check

(age>=

10and age<

100)

;

alter

table constrainttab

addcheck

(age>=

10and age<

100)

;

4.新增外來鍵:foreign key

只能當做表級約束,所以使用新增字段定義的方式:add

alter

table constrainttab add

constraint fk_major_stuinfo

foreign

key(majorid)

references major(id)

;

5.新增預設:default

只能當做列級約束,所以使用修改列的定義方式:modify

alter

table constrainttab modify

column gender char

default

'男';

6.新增非空:not null

只能當做列級約束,所以使用修改列的定義方式:modify

alter

table constrainttab modify

column name varchar(20

)not

null

;

1.刪除主鍵:只有乙個

alter

table constrainttab drop

primary

key;

2.刪除唯一:可以有多個,所以需指定欄位名

alter

table constrainttab drop

index seat;

3.刪除外來鍵:可以有多個,所以需指定外來鍵約束名

alter

table constrainttab drop

foreign

key constrainttab_ibfk_1;

4.刪除非空:通過修改列屬性

alter

table constrainttab modify

column name varchar(20

)null

;

5.刪除預設:通過修改列屬性

alter

table constrainttab modify

column gender char(1

);

建立表時,在constraint約束區域,宣告指定字段為主鍵:

檢視表的索引:

show

index

from constrainttab;

SQL完整性約束

完整性約束保證授權使用者對資料庫所做的修改不會破壞資料的一致性。not null宣告禁止在該屬性上插入空值。任何可能導致向乙個宣告為not null的屬性插入空值的資料都會產生錯誤診斷資訊。unique aj 1 aj 2 aj m unique宣告指出aj 1 aj 2 aj m 形成了乙個候選碼...

SQL完整性約束

1.資料定義語句 ddl create alter drop truncate 表結構 2.資料操縱語句 dml insert delete update select 3.資料控制語句 dcl 授權 grant 收回許可權 revoke 4.失誤控制語句 tcl 開啟事務 begin transa...

完整性約束

create table student tb id int notnull 非空約束 資料不允許為空 name varchar 255 null 顯式指定允許為空 新增非空約束 alter table 表名 modify column 屬性名 屬性型別 not null alter table s...