1、 主鍵約束:是用來唯一標示表中一個列的,一個表中主建約束只能有一個,但是一個主健約束中可以包括多個列,也稱爲聯合主鍵。
2、 外健約束:用來建立兩個表中列之間關係的,它可以由1列或多列組成。一個表可以有1個或多個外健。
3、 唯一外束:也是用來唯一標識表中列的,與主健約束不同的是,在一張數據表中可以有多個唯一約束。
4、 檢查約束:用來限定表中列裏輸入值的範圍,比如說在輸入年齡時,要求在數據庫中只能輸入1~120之間的數,就可以使用檢查約束來約束該列。
5、 非空約束:用來限定數據表中的列必須輸入值。
6、 默認值約束:用來當不給表中的列輸入值時,自動爲該列添加一個值。
*以上約束中,只有主鍵約束一個表中只能有一個,其他的約束都可以有多個。
在創建表時設置主鍵約束
1、 使用SQL語句設置單一列的約束
(1) 設置列級主鍵約束
“CREATE TABLE_NAME table_name
(
COLUMN_NAME1 DATATYPE PRIMARY KEY,
COLUMN_NAME2 DATATYPE,
COLUMN_NAME3 DATATYPE
…
)”
(2) 設置表級主鍵約束
“CREATE TABLE_NAME table_name
(
COLUMN_NAME1 DATATYPE,
COLUMN_NAME2 DATATYPE,
COLUMN_NAME3 DATATYPE
…
[CONSTRAINTconstruction_name]PRIMARY KEY(COLUMN_NAME1)
)”
*在上述兩種語法中都是將COLUMN_NAME1;列設置成爲了主鍵約束,第一種創建主鍵約束的語法是在設置單一列主鍵約束中比較常用的方法。
【示例1】創建酒店管理系統中的客戶信息表並將客戶編號設置成主鍵,表結構如下:
編號 | 列名 | 數據類型 | 中文釋義 |
1 | Customer ID | Integer | 客戶編號 |
2 | Customer Name | Varchar(12) | 客戶姓名 |
3 | Customer Age | Integer | 客戶年齡 |
4 | Customer Sex | Varchar(4) | 客戶性別 |
5 | Customer Tel | Varchar(15) | 客戶聯繫電話 |
6 | Remarks | Varchar(200) | 備註 |
在創建數據表之前,先創建一個存放酒店管理系統所用到的數據庫HOTEL,並把所存有與酒店管理系統有關的表全部存放到該數據庫中。
使用第一種語法創建客戶信息表,並將客戶編號列customerID設置爲主鍵約束,代碼如下
“CREATE TABLE CUSTOMERINFO
(
CUSTOMERID INTEGER PRIMARY KEY,
CUSTOMERNAME VARCHAR(12),
CUSTOMERAGE INTEGER,
CUSTOMERSEX VARCHAR(4),
CUSTOMERTEL VARCHAR(15),
REMARKS VARCHAR(200)
);”
使用第二種語法創建客戶信息表,並將客戶編號列customerID設置成主鍵約束,代碼如下所示
“CREATE TABLE CUSTOMERINFO
(
CUSTOMERID INTEGER ,
CUSTOMERNAME VARCHAR(12),
CUSTOMERAGE INTEGER,
CUSTOMERSEX VARCHAR(4),
CUSTOMERTEL VARCHAR(15),
REMARKS VARCHAR(200),
PRIMARY KEY(CUSTOMERID)
);”
2在創建表時設置聯合主鍵
“CREATE TABLE table_name
(
COLUMN_NAME1 DATATYPE,
COLUMN_NAME2 DATATYPE,
COLUMN_NAME3 DATATYPE
…
[CONSTRAINT constraint_name]PRIMARY KEY(COLUMN_NAME1,COLUMN_NAME2,
COLUMN_NAME3..
);”
*當主鍵是由多個列組成時,不能直接在列名後面聲明主鍵約束,例如:
“CREATE TABLE_name table_name
(
COLUMN_NAME1 DATATYPE PRIMARY KEY,
COLUMN_NAMNE2 DATATYPE PRIMARY KEY,
COLUM_NAME3 DATATYPE
);”聯合主鍵