数据库 · 31 10 月, 2024

SQL Server缺省約束、列約束和表約束

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解決方案,為您的業務提供穩定的支持。