約束新增和刪除

2021-07-23 11:50:59 字數 2597 閱讀 9092

**

約束的目的就是確保表中的資料的完整性。

常用的約束型別如下:

主鍵約束:(primary key constraint)      要求主鍵列唯一,並且不允許為空

唯一約束:(unique constraint)              要求該列唯一,允許為空,但只能出現乙個空值

檢查約束:(check constraint)                某列取值範圍限制、格式限制等。如有關年齡的限制

預設約束:(default constraint)               某列的預設值,如我們的男性學員比較多,性別預設為男

外來鍵約束:(foreign key constraint)       用於在兩表之間建立關係,需要指定引用主表的哪一列

一、新增約束

在建立表時,我們可以在字段後新增各種約束,但一般不這樣混用,推薦將新增約束和建表的語句分開編寫。

新增約束的語法如下:

code:

alter

table

表名   

addconstraint

約束名 約束型別 具體的約束型別  

上述語法標識修改某個表,新增某個約束,其中約束名的命名規則推薦採用"約束型別_約束字段"這樣的形式。

code:

---新增主鍵約束 

alter

table

stuinfo   

addconstraint

pk_stuno 

primary

key(stuno)   

---新增唯一約束 

alter

table

stuinfo   

addconstraint

uq_stuid 

unique

(stuid)   

---新增預設約束 

alter

table

stuinfo   

addconstraint

df_stuaddress 

default

('位址不詳'

) for

stuaddress   

---新增檢查約束 

alter

table

stuinfo   

addconstraint

ck_stuage 

check

(stuage 

between

15 and

40)   

---新增外來鍵約束 

alter

table

stumarks   

addconstraint

fk_stuno 

foreign

key(stuno) 

references

stuinfo(stuno)  

二、刪除約束

如果錯誤的新增了約束,則可以刪除約束

刪除約束的語法如下:

code:

alter

table

表名   

drop

constraint

約束名  

附加:在建立表的時候同時新增約束的寫法:

code:

use studb   

go   

if exists(

select

* from

sysobjects 

where

name

= 'stuinfo'

)   

drop

table

stuinfo   

go   

create

table

stuinfo   

(   

stuname 

varchar

(20) 

notnull

primary

key(stuname)    

,stuid 

intnot

null

unique

(stuid)   

,stuaddress 

varchar

(20) 

notnull

default

('位址不詳'

)   

,stuage 

intnot

null

check

(stuage 

between

15 and

40)   

)  

sql語句新增和刪除約束

常用的約束型別如下 主鍵約束 primary key constraint 要求主鍵列唯一,並且不允許為空 唯一約束 unique constraint 要求該列唯一,允許為空,但只能出現乙個空值 檢查約束 check constraint 某列取值範圍限制 格式限制等。如有關年齡的限制 預設約束 ...

MYSQL約束的新增和刪除

在mysql資料庫中,建表時就可以進行對錶的各項進行一些操作,例如設定主鍵或者非空約束,這裡主要講講如何在建表後進行新增約束和刪除約束 首先,建乙個十分普通的表 create table test test no char 10 test point int,test student char 11...

新增 刪除約束 Oracle

增加一列或者多列 alter table 表名 add column name datatype 修改一列或者多列 修改列的型別或者是長度 alter table 表名 modify column name datatype 刪除一列 alter table 表名 drop column colum...