数据库 · 20 10 月, 2024

Oracle中的約束中6種約束的介紹

Oracle中的約束中6種約束的介紹

在Oracle資料庫中,約束(Constraint)是用來限制資料表中資料的完整性和一致性的重要工具。透過約束,資料庫管理員可以確保資料的正確性,避免不合規的資料進入資料庫。本文將介紹Oracle中常見的六種約束類型,並提供相應的範例和代碼片段,以幫助讀者更好地理解這些約束的功能和使用方法。

1. 主鍵約束(PRIMARY KEY)

主鍵約束用於唯一標識資料表中的每一行。每個資料表只能有一個主鍵,且主鍵的值不能為NULL。主鍵通常由一個或多個欄位組成。

CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    first_name VARCHAR2(50),
    last_name VARCHAR2(50)
);

2. 外鍵約束(FOREIGN KEY)

外鍵約束用於建立資料表之間的關聯。它確保一個資料表中的某個欄位的值必須存在於另一個資料表的主鍵中。這樣可以維護資料的參照完整性。

CREATE TABLE departments (
    department_id NUMBER PRIMARY KEY,
    department_name VARCHAR2(50)
);

CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    department_id NUMBER,
    FOREIGN KEY (department_id) REFERENCES departments(department_id)
);

3. 唯一約束(UNIQUE)

唯一約束確保資料表中的某個欄位的值是唯一的,這意味著該欄位不能有重複的值。與主鍵不同的是,唯一約束的欄位可以包含NULL值。

CREATE TABLE users (
    user_id NUMBER PRIMARY KEY,
    email VARCHAR2(100) UNIQUE
);

4. 檢查約束(CHECK)

檢查約束用於限制欄位的值必須滿足特定條件。這可以用來確保資料的有效性,例如限制年齡欄位的值必須大於0。

CREATE TABLE students (
    student_id NUMBER PRIMARY KEY,
    age NUMBER CHECK (age > 0)
);

5. 非空約束(NOT NULL)

非空約束確保某個欄位不能為NULL。這對於那些必須有值的欄位非常重要,例如用戶名或密碼。

CREATE TABLE accounts (
    account_id NUMBER PRIMARY KEY,
    username VARCHAR2(50) NOT NULL,
    password VARCHAR2(50) NOT NULL
);

6. 默認約束(DEFAULT)

默認約束用於為某個欄位指定一個默認值,當插入資料時如果該欄位沒有提供值,則會自動使用這個默認值。

CREATE TABLE orders (
    order_id NUMBER PRIMARY KEY,
    order_date DATE DEFAULT SYSDATE
);

總結

在Oracle資料庫中,約束是確保資料完整性和一致性的關鍵工具。透過主鍵、外鍵、唯一、檢查、非空和默認約束,資料庫管理員可以有效地管理資料的質量和結構。了解這些約束的使用方法對於設計和維護資料庫至關重要。

如果您對於如何在您的應用中使用這些約束有進一步的需求,或是需要高效的 VPS 解決方案來支援您的資料庫運行,歡迎訪問我們的網站以獲取更多資訊。