1)
primary key
主鍵可以保證每行記錄唯一性,還可以使用主鍵連線其它表,這樣這兩張表會形成一種關係。所謂的「關係」型資料管理系統的關係就是由此來的。
下面建立
乙個pkablumablumid
主鍵。
alter table album
add constraint pkalbumalbumid primary key(albumid)
通常我們使用identity
關鍵字設定主鍵自增長,有些時候我們要將另外一張表的資料匯入另一張表中。可以使用下面的方法暫時關閉或開啟自增長。
set identity_insert [ database_name . [ schema_name ] . ] table { on
2) foreign key
限制引用表某一字段為被引用表某字段,這樣兩張表形成了關聯關係。主鍵是保證資料完整性的
方法之一。注意只能連線建立了主鍵(primary key
)或唯一一性(
unique
)約束的字段。
下面建立了乙個
fkalbumcreatesartist
主鍵,album
表artistid
字段參照
artist
表artistid
字段:
alter table album
add constraint fkalbumcreatesartist foreign key(artistid)
references artist(artistid)
3)
check
檢查列值是否滿足某種標準
,下面列舉了一些常用用法。
下面建立了乙個
ckalbumisenabled
檢查約束,限制
enabled
欄位的值只能是
0,或1
:
alter table album
add constraint ckalbumisenabled check(enabled in(0,1))
序號
表示式 說明
例子 1
between
限制取值範圍。
month
between 1 and 12 2
like
使用匹配模式限制取值範圍。
like '[0-9][0-9][0-9][0-9][0-9][0-9]' 3
in限制取值範圍為乙個指定列表。
in(0,1) 4
數學表示式
限制取值範圍不能
<.>或
=某一值或列
unitprice>=0
shipdate>=orderdate
4) unique
unique也叫替換鍵,和主鍵功能一樣可以約束字段值不能重複,可以被外來鍵引用。不同的是它允許為null。下面建立了乙個
akgenre
id唯一約束:
alter table genre
add constraint akgenreid
unique(id)
5)
default
設定欄位的預設值。下面建立了乙個
cnalbumdefaultalbumarturl
預設約束:
alter table album
add constraint cnalbumdefaultalbumarturl
default n'/content/images/placeholder.gif' for albumartur
6)
禁止、啟動和刪除約束
禁止約束
:
alter table album nocheck constraint ckalbumisenabled
啟用約束
:
alter table album check constraint ckalbumisenabled
刪除約束
:
alter table album drop ckalbumisenabled
可看錶約束詳細資訊
:
exec sp_helpconstraint album
使用
sp_addextendedproperty
儲存過程為表或字段新增「說明」。
7) 表
下面為album
表新增了說明:
declare @currentuser sysname
select @currentuser = user_name()
execute sp_addextendedproperty 'ms_description',
' ****資訊表',
'user',@currentuser , 'table', 'album'
8) 字段
下面為album
表albumid
字段新增了
execute sp_addextendedproperty 'ms_description',
'主鍵',
'user', @currentuser, 'table', 'album', 'column', 'albumid'
MySQL基本語句總結之約束
not null 限制列取值非空。default 給定列的預設值。unique 限制列取值不重。check 限制列的取值範圍。primary key 指定本列為主碼。foreign key 定義本列為引用其他表的外碼。使用形式為 foreign key 外碼列名 references 外表名 外表列...
mySQL之約束條件
primary key pk 標識該字段為該錶的主鍵,可以唯一的標識記錄 foreign key fk 標識該字段為該錶的外來鍵 not null 標識該欄位不能為空 unique key uk 標識該字段的值是唯一的 auto increment 標識該字段的值自動增長 整數型別,而且為主鍵 de...
Go併發模式之 約束
約束 在編寫併發 的時候,有以下幾種不同的保證操作安全的方法。1。用於共享記憶體的同步原語 如sync.mutex 2.通過通訊來 共享記憶體來進行同步 如 channel 在併發處理中還有其他幾種情況也是隱式併發安全的 3。不會發生改變的資料 4。受到保護的資料 約束 特定約束,和 詞法約束 特定...