—NOT NULL
    – UNIQUE
    – PRIMARY KEY
    – FOREIGN KEY
    – CHECK

    列级别约束条件示例:

    1. CREATE TABLE employees(
    2. employee_id NUMBER(6)
    3. CONSTRAINT emp_emp_id_pk PRIMARY KEY,
    4. first_name VARCHAR2(20),
    5. ...);

    表级别约束条件示例:

    1. CREATE TABLE employees(
    2. employee_id NUMBER(6),
    3. first_name VARCHAR2(20),
    4. ...
    5. job_id VARCHAR2(10) NOT NULL,
    6. CONSTRAINT emp_emp_id_pk
    7. PRIMARY KEY (EMPLOYEE_ID));

    FOREIGN KEY 约束条件:关键字
    外键是在子表中定义的,而包含被引用列的表是父表。外键是使用以下关键字的组合
    定义的:
    • FOREIGN KEY 用于在表约束条件级别定义子表中的列。
    • REFERENCES 用于标识父表中的表和列。
    • ON DELETE CASCADE 指出在删除父表中的行时,还删除子表中的相关行。
    • ON DELETE SET NULL 指出在删除父表中的行时,将外键值设为空值。
    默认行为被称为限制规则,该规则可禁止更新或禁止删除被引用的数据。
    在没有ON DELETE CASCADE 或ON DELETE SET NULL 选项时,如果在子表中引用
    父表中的一行,则不能删除该行。
    删除外键

    1. ALTER TABLE table_name
    2. DROP CONSTRAINT constraint_name;

    禁用外键

    1. ALTER TABLE table_name
    2. DISABLE CONSTRAINT constraint_name;

    启动外键

    1. ALTER TABLE table_name
    2. ENABLE CONSTRAINT constraint_name;

    oracle约束的4种状态:
    disable novalidate 既不会约束新增数据也不会验证已有数据,等同于disable
    enable novalidate 约束新增数据但不会验证已有数据
    disable validate 约束新增数据但不会验证已有数据,启用后禁止DML
    enable validate 约束新增数据并验证已有数据,等同于enable
    查看约束状态

    1. select t.owner,t.constraint_name,t.status,t.deferrable,t.deferred,t.validated from user_constraints

    添加约束

    1. ALTER TABLE orders
    2. MODIFY customer_id CONSTRAINT orders_cust_nn NOT NULL (customer_id);