SQL Server缺省約束、列約束和表約束
在資料庫管理系統中,約束是用來限制資料的完整性和一致性的重要工具。SQL Server提供了多種約束類型,其中包括缺省約束、列約束和表約束。本文將深入探討這些約束的定義、用途及其在實際應用中的示例。
缺省約束(DEFAULT Constraint)
缺省約束是一種列約束,用於為某一列指定一個預設值,當插入資料時如果未提供該列的值,則自動使用預設值。這對於確保資料的一致性和完整性非常有用。
使用範例
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50),
HireDate DATETIME DEFAULT GETDATE()
);
在上述範例中,當插入新員工資料時,如果未提供 HireDate 的值,則會自動使用當前日期作為預設值。
列約束(Column Constraints)
列約束是針對單一列的約束,主要用於限制該列中可以存儲的資料類型和範圍。常見的列約束包括:
- NOT NULL:確保該列不能為空。
- UNIQUE:確保該列中的所有值都是唯一的。
- CHECK:確保該列中的值符合特定條件。
使用範例
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName NVARCHAR(100) NOT NULL,
Price DECIMAL(10, 2) CHECK (Price > 0),
SKU NVARCHAR(50) UNIQUE
);
在這個範例中,ProductName 列不能為空,Price 列必須大於零,而 SKU 列中的值必須是唯一的。
表約束(Table Constraints)
表約束是針對整個表的約束,通常用於定義多列之間的關係。表約束的常見類型包括:
- PRIMARY KEY:唯一標識表中的每一行。
- FOREIGN KEY:確保表之間的參照完整性。
- CHECK:可以在表級別上定義,確保整個表中的資料符合特定條件。
使用範例
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATETIME DEFAULT GETDATE(),
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
在這個範例中,OrderID 是主鍵,並且 CustomerID 是外鍵,這樣可以確保每個訂單都與一個有效的客戶相關聯。
結論
SQL Server中的缺省約束、列約束和表約束是確保資料完整性和一致性的關鍵工具。透過合理地使用這些約束,可以有效地管理資料庫中的資料,避免不一致和錯誤的發生。了解這些約束的特性和使用方法,對於資料庫設計和管理至關重要。
如果您對於資料庫管理或其他技術需求有興趣,歡迎訪問我們的網站了解更多資訊,特別是我們的香港VPS解決方案,為您的業務提供穩定的支持。