Oracle数据库中的约束是确保数据库表数据完整性和准确性的关键工具。它们用于定义表中的数据规则,从而防止无效或不符合要求的数据被插入、更新或删除。以下是一些关键的SQL约束语句及其创建方法。

1. 主键约束(PRIMARY KEY)

主键约束确保表中的每一行都有一个唯一的标识符。通常,主键由一个或多个列组成,其值在整个表中必须是唯一的,且不能为NULL。

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

2. 外键约束(FOREIGN KEY)

外键约束用于实现表之间的关系,确保引用的表中的相关数据存在。例如,如果您有一个orders表和一个customers表,可以通过外键将orders表中的customer_idcustomers表中的id相关联。

CREATE TABLE orders (
    order_id NUMBER PRIMARY KEY,
    customer_id NUMBER,
    order_date DATE,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);

3. 唯一约束(UNIQUE)

唯一约束确保列中的值是唯一的,但允许NULL值存在。如果列中有重复的值,则插入或更新操作将失败。

CREATE TABLE products (
    product_id NUMBER PRIMARY KEY,
    product_name VARCHAR2(100) UNIQUE
);

4. 非空约束(NOT NULL)

非空约束确保列不能包含NULL值。在创建表时,您可以指定某些列为非空,这意味着在插入或更新数据时,这些列必须提供值。

CREATE TABLE departments (
    department_id NUMBER PRIMARY KEY,
    department_name VARCHAR2(100) NOT NULL
);

5. 检查约束(CHECK)

检查约束用于确保列中的值满足特定的条件。例如,您可能希望确保某列中的值在特定范围内。

CREATE TABLE salary (
    employee_id NUMBER,
    salary_amount NUMBER CHECK (salary_amount BETWEEN 3000 AND 10000)
);

6. 默认值约束(DEFAULT)

默认值约束用于在插入新行时自动为列指定一个默认值。

CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    hire_date DATE DEFAULT SYSDATE
);

通过以上SQL约束语句,您可以轻松地在Oracle数据库中创建表并设置数据完整性规则。记住,合理的约束不仅有助于维护数据的准确性,还能提高查询性能。在实际应用中,应根据具体需求和业务逻辑选择合适的约束类型。