標籤:
約束條件分為以下幾種:
1)非空約束,使用NOT NULL關鍵字;
2)預設值約束,使用DEFAULT關鍵字;
3)檢查約束,使用CHECK關鍵字;
4)唯一約束,使用UNIQUE關鍵字;
5)主鍵約束,使用PRIMARY KEY關鍵字;
6)外鍵約束,使用FOREIGN KEY關鍵字。
約束是確保資料的完整性,從而阻止不希望插入的資料被錄入。
以下使用一段SQL代碼進行示範:
USE PersonInfo --使用PersonInfo資料庫GOIF EXISTS (SELECT * FROM sys.tables WHERE [name] = ‘Employee ‘) --如果存在Employee這張表DROP TABLE Employee --則刪除GOIF EXISTS(SELECT * FROM sys.tables WHERE [name] = ‘Person‘) --如果存在Person這張表DROP TABLE Person --則刪除GOCREATE 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)GOCREATE 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
結果:
1 - SQL Server 2008 之 使用SQL語句建立具有約束條件的表