約束條件分為以下幾種:
1)非空約束,使用NOT NULL關鍵字;
2)默認值約束,使用DEFAULT關鍵字;
3)檢查約束,使用CHECK關鍵字;
4)唯一約束,使用UNIQUE關鍵字;
5)主鍵約束,使用PRIMARY KEY關鍵字;
6)外鍵約束,使用FOREIGN KEY關鍵字。
約束是確保數據的完整性,從而阻止不希望插入的數據被錄入。
以下使用一段SQL代碼進行演示:
USE PersonInfo --使用PersonInfo數據庫 GO IF EXISTS (SELECT * FROM sys.tables WHERE [name] = 'Employee ') --如果存在Employee這張表 DROP TABLE Employee --則刪除 GO IF EXISTS(SELECT * FROM sys.tables WHERE [name] = 'Person') --如果存在Person這張表 DROP TABLE Person --則刪除 GO CREATE TABLE Person --創建Person(人物)表 ( --索引 PersonID int IDENTITY(1,1) NOT NULL CONSTRAINT PK_PersonID PRIMARY KEY,-- 創建一個整型、自增為1、標識種子為1、不允許為空、約束條件為主鍵約束的列PersonID --名字 Name nvarchar(20) NOT NULL, --創建一個Unicode非固定長度(最多存儲20個Unicode字符)的列Name --年齡 Age int NOT NULL CONSTRAINT CK_Age CHECK (Age >= 18 AND Age<=55) ,--創建一個整型、約束條件為檢查約束的列Age --性別 Gender bit NOT NULL CONSTRAINT DF_Gender DEFAULT(1) , --創建一個類型為bit、默認值為1(True)的列Gender --身份信息 [Identity] nchar(18) NOT NULL CONSTRAINT CK_Identity CHECK(LEN([Identity])=18) CONSTRAINT UQ_Identity UNIQUE --創建一個非Unicode非固定長度(最多存儲18個非Unicode字符)的、約束條件為檢查約束的列Identity ) GO CREATE TABLE Employee --創建Employee(雇員)表 ( --索引 EmployeeID int IDENTITY(1,1001) NOT NULL CONSTRAINT PK_ID PRIMARY KEY, -- 創建一個整型、自增為1、標識種子為1001、不允許為空、約束條件為主鍵約束的列EmployeeID --人物索引 PersonID int NOT NULL CONSTRAINT FK_PersonID FOREIGN KEY REFERENCES Person(PersonID), --職位 Post nvarchar(20) NOT NULL,--創建一個Unicode非固定長度(最多存儲20個Unicode字符)的列Post --入職時間 EntryTime datetime CONSTRAINT DF_EntryTime DEFAULT getdate() --創建一個類型為datetime、默認值為取服務器時間的列EntryTime ) GO
結果: