数据库 · 3 11 月, 2024

MSSQL 教程 SQL 約束(Constraints)

MSSQL 教程 SQL 約束(Constraints)

在資料庫設計中,約束(Constraints)是用來限制資料表中資料的有效性和完整性的重要工具。Microsoft SQL Server(MSSQL)提供了多種約束類型,以確保資料的正確性和一致性。本文將深入探討 MSSQL 中的各種約束類型及其使用方法。

約束的類型

MSSQL 中的約束主要可以分為以下幾種類型:

  • 主鍵約束(PRIMARY KEY)
  • 外鍵約束(FOREIGN KEY)
  • 唯一約束(UNIQUE)
  • 檢查約束(CHECK)
  • 預設約束(DEFAULT)

1. 主鍵約束(PRIMARY KEY)

主鍵約束用於唯一標識資料表中的每一行。每個資料表只能有一個主鍵,且主鍵的值不能為空。以下是創建主鍵約束的範例:

CREATE TABLE Customers (
    CustomerID int PRIMARY KEY,
    CustomerName varchar(255) NOT NULL
);

2. 外鍵約束(FOREIGN KEY)

外鍵約束用於建立兩個資料表之間的關聯。它確保在一個資料表中的某個欄位的值必須存在於另一個資料表的主鍵中。以下是創建外鍵約束的範例:

CREATE TABLE Orders (
    OrderID int PRIMARY KEY,
    CustomerID int,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

3. 唯一約束(UNIQUE)

唯一約束確保資料表中的某個欄位的值是唯一的,這意味著不可以有重複的值。與主鍵不同的是,唯一約束的欄位可以包含空值。以下是創建唯一約束的範例:

CREATE TABLE Employees (
    EmployeeID int PRIMARY KEY,
    Email varchar(255) UNIQUE
);

4. 檢查約束(CHECK)

檢查約束用於限制欄位中的值,確保其符合特定條件。以下是創建檢查約束的範例:

CREATE TABLE Products (
    ProductID int PRIMARY KEY,
    Price decimal CHECK (Price >= 0)
);

5. 預設約束(DEFAULT)

預設約束用於為欄位指定一個預設值,當插入資料時如果未提供該欄位的值,則會使用預設值。以下是創建預設約束的範例:

CREATE TABLE Orders (
    OrderID int PRIMARY KEY,
    OrderDate datetime DEFAULT GETDATE()
);

約束的管理

在 MSSQL 中,可以使用 ALTER TABLE 語句來添加或刪除約束。例如,若要為已存在的資料表添加唯一約束,可以使用以下語句:

ALTER TABLE Employees
ADD CONSTRAINT UQ_Email UNIQUE (Email);

若要刪除約束,可以使用以下語句:

ALTER TABLE Employees
DROP CONSTRAINT UQ_Email;

總結

約束在 MSSQL 中扮演著至關重要的角色,幫助確保資料的完整性和一致性。透過主鍵、外鍵、唯一、檢查和預設約束,開發者可以有效地管理資料庫中的資料。了解這些約束的使用方法,將有助於設計出更為穩健的資料庫系統。

如需進一步了解如何在香港使用 VPS 進行資料庫管理,請訪問我們的網站以獲取更多資訊。