數據庫中的約束

 我們在創建數據庫的時候,創建表式非常簡單的工作,但是,當你往表中加一些約束的時候,或許就要發愁了,因爲一些約束的格式比較複雜,從而,我們每次寫的時候,都需要去查工具。慶幸的事,最近剛剛總結了一下,在這裏,拿出來給大家分享一下。
 我們經常用到的有這麼幾種約束,Primary key約束,Foreign key約束,Unique約束,Check約束、Default約束。
 一,我們來看一下Primary key約束吧!PRIMARY KEY 約束定義表中構成主鍵的一列或多列,一個表只能有一個 PRIMARY KEY 約束,指定爲 PRIMARY KEY 的列中的值必須是唯一的 ,包含在 PRIMARY KEY 約束中的列不能接受 NULL值 。
 語法:
CONSTRAINT constraint_name PRIMARY KEY 用來指定一個有名的主鍵
PRIMARY KEY 在創建表的時候指定一個主鍵,在字段後面
CONSTRAINT constraint_name PRIMARY KEY (column_list)多個主鍵()有名字
PRIMARY KEY (column_list)在創建表的時候指定多個主鍵。
 二、與Primary Key
 相對應的就是Foreign key約束。一般情況下,在Microsoft SQL Server關係型數據庫管理系統中,表和表之間經常存在着大量的關係,這些關係都是通過定義主鍵約束和外鍵約束實現的。但是有一個問題,就是刪除的時候,是否是級聯刪除。具體如下:
 語法:
-- 在CREATE TABLE語句中定義只有一個列的外鍵約束
FOREITN KEY REFERENCES referenced_table_name (referenced_column)
ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
ON UPDATE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
 三、Unique約束
 UNIQUE約束指定表中某一個列或多個列不能有相同的兩行或兩行以上的數據存在。這種約束通過實現唯一性索引來強制實體完整性。當表中已經有了一個主鍵約束時,如果需要在其他列上實現實體完整性,又因爲表中不能有兩個或兩個以上的主鍵約束,所以只能通過創建UNIQUE約束來實現。
 語法:
CONSTRAINT constraint_name UNIQUE
UNIQUE
CONSTRAINT constraint_name UNIQUE (column_list)
UNIQUE (column_list)
 四、Check約束
 CHECK約束用來限制用戶輸入某一個列的數據,即在該列中只能輸入指定範圍的數據。CHECK約束的作用非常類似於外鍵約束,兩者都是限制某個列的取值範圍,但是外鍵是通過其他表來限制列的取值範圍,CHECK約束是通過指定的邏輯表達式來限制列的取值範圍。
 語法:
CONSTRAINT constraint_name CHECK (logical_expression)
CHECK (logical_expression)
 注意:CHECK 約束限制在 INSERT 和 UPDATE 語句期間用戶可輸入特定列中的數據值 ,每列可以定義多個CHECK約束,在同一個表格中可以引用列,不能包含子查詢。
 五、Default約束
 當使用INSERT語句插入數據時,如果沒有爲某一個列指定數據,那麼DEFAULT約束就在該列中輸入一個值。
 語法:
-- 在CREATE TABLE語句的列的屬性中
CONSTRAINT constraint_name DEFAULT constant_expression
DEFAULT constant_expression
-- 在ALTER TABLE語句的ADD子句中
CONSTRAINT constraint_name DEFAULT constant_expression FOR column_name
DEFAULT constant_expression FOR column_name
 最後,我覺得,要想熟練掌握,就要靠我們平時在建表的時候多動手,少用圖形界面,呵呵!

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章