**
約束的目的就是確保表中的資料的完整性。
常用的約束型別如下:
主鍵約束:(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...