約束 規則 預設值和觸發器

2021-03-31 08:56:29 字數 1460 閱讀 9396

一、not null 指定不接受 null 值的列。

二、check 約束對可以放入列中的值進行限制,以強制執行域的完整性。

check 約束指定應用於列中輸入的所有值的布林(取值為 true 或 false)搜尋條件,拒絕所有不取值為 true 的值。可以為每列指定多個 check 約束。下例顯示名為chk_id約束的建立,該約束確保只對此關鍵字輸入指定範圍內的數字,以進一步強制執行主鍵的域。

create table cust_sample

(

cust_id int primary key,

cust_name char(50),

cust_address char(50),

cust_credit_limit money,

constraint chk_id check (cust_id between 0 and 10000 )

)

三、unique 約束在列集內強制執行值的唯一性。

對於 unique 約束中的列,表中不允許有兩行包含相同的非空值。主鍵也強制執行唯一性,但主鍵不允許空值。unique 約束優先於唯一索引

四、primary key 約束標識列或列集,這些列或列集的值唯一標識表中的行。

在乙個表中,不能有兩行包含相同的主鍵值。不能在主鍵內的任何列中輸入 null 值。在資料庫中 null 是特殊值,代表不同於空白和 0 值的未知值。建議使用乙個小的整數列作為主鍵。每個表都應有乙個主鍵。

乙個表中可以有乙個以上的列組合,這些組合能唯一標識表中的行,每個組合就是乙個候選鍵。資料庫管理員從候選鍵中選擇乙個作為主鍵。例如,在part_sample表中,part_nmbrpart_name都可以是候選鍵,但是只將part_nmbr選作主鍵。

create table part_sample

(part_nmbr int primary key,

part_name char(30),

part_weight decimal(6,2),

part_color char(15) )

五、foreign key 約束標識表之間的關係。

乙個表的外來鍵指向另乙個表的候選鍵。當外鍵值沒有候選鍵時,外來鍵可防止操作保留帶外鍵值的行。在下例中,order_part表建立乙個外來鍵引用前面定義的part_sample表。通常情況下,order_part在 order 表上也有乙個外來鍵,下面只不過是乙個簡單示例。

如果嘗試更新現有外來鍵指向的候選鍵值,on update 子句將定義所採取的操作。它也支援 no action 和 cascade 選項。

SQL 預設值和規則

建立規則 下面來演示以下兩種完整性約束的操作 由於sql server2008取消了以下兩項操作的圖形介面操作,我們只能用命令建立,配合圖形介面來觀察結果了。先建立了乙個20歲的年齡的預設值,在我們新增學生不輸入學生年齡的時候,系統自動新增預設值。可以看到系統自動新增年齡20 我們現在再來看下面的問...

MySQL預設值約束

1 預設值約束 特點 1 乙個表可以有很多的預設值約束 2 預設值約束只能針對某乙個字段來說 3 預設值約束意味著,該欄位如果沒有手動賦值,會按預設值處理 2 如何在建表時指定預設值約束?create table 資料庫名.表名稱 欄位名1 資料型別 primary key,欄位名2 資料型別 un...

SQL DEFAULT 約束(設定預設值)

於 sql default 約束 菜鳥教程 runoob.com default 約束用於向列中插入預設值。如果沒有規定其他的值,那麼會將預設值新增到所有的新記錄。下面的 sql 在 persons 表建立時在 city 列上建立 default 約束 my sql sql server oracl...