首頁  >  文章  >  資料庫  >  MySQL中constraint的詳解

MySQL中constraint的詳解

PHPz
PHPz原創
2024-02-22 14:24:04648瀏覽

MySQL中constraint的詳解

MySQL中constraint的詳解

在MySQL資料庫中,constraint(約束)是用來定義和限製表中列的取值範圍和資料完整性的規則。透過在表格的建立過程中為列新增約束,可以確保資料的正確性和一致性。本文將介紹MySQL中常用的約束類型,並提供具體的程式碼範例。

  1. PRIMARY KEY(主鍵限制)
    主鍵是針對一張表中的一列或一組欄位的唯一識別。它們保證表中每一行的唯一性。使用PRIMARY KEY約束可以確保一個表中只有一個主鍵,且不能有重複值。
    下面是一個範例,示範如何為表格新增主鍵約束:
CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);
  1. #FOREIGN KEY(外鍵限制)
    外鍵用於在多個表之間建立關係。它是一個列或一組列,它們引用另一張表的主鍵,以確保資料的完整性。當在外鍵列上定義了FOREIGN KEY約束後,MySQL將會自動檢查插入或更新的值是否存在於關聯表中。
    以下是一個範例,展示如何為表格新增外鍵約束:
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    product_id INT,
    customer_id INT,
    FOREIGN KEY (product_id) REFERENCES products(product_id),
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
  1. UNIQUE(唯一約束)
    唯一約束確保一個表格中的某一列只接受唯一的值。在某些情況下,你可能想要為一個欄位新增UNIQUE約束,以避免重複的值。
    以下是一個範例,展示如何為表格新增唯一約束:
CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    email VARCHAR(50) UNIQUE,
    department_id INT
);
  1. CHECK(檢查約束)
    CHECK約束用於自訂表格中列的取值範圍。透過使用CHECK約束,可以確保只有滿足特定條件的資料才能插入表中。
    以下是一個範例,示範如何使用CHECK約束:
CREATE TABLE products (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(50),
    quantity INT,
    price DECIMAL(10, 2),
    CONSTRAINT CHK_quantity CHECK (quantity >= 0),
    CONSTRAINT CHK_price CHECK (price > 0)
);
  1. DEFAULT(預設約束)
    DEFAULT約束用於為列設定預設值,以便在插入新行時,如果未明確提供值,則自動使用預設值。
    以下是一個範例,展示如何為表格新增預設約束:
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(50),
    password VARCHAR(50) DEFAULT '123456',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

以上是MySQL中常用的約束類型及其使用方法的介紹。使用約束可以確保資料庫的資料完整性和一致性。透過合理地使用約束,可以減少錯誤和不一致的數據,並提高資料庫的效率和可靠性。希望本文能幫助你理解並運用MySQL的約束功能。

以上是MySQL中constraint的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn