在Oracle 19c中,主要有以下六种数据完整性约束:
一、主键约束(Primary Key Constraint)
定义与作用:用于唯一标识表中的每一行数据。一个表只能有一个主键,它可以由一个或多个列组成。主键列的值必须是唯一的且不能为NULL。
创建方式:
在创建表时指定主键约束,例如:CREATE TABLE employees (employee_id NUMBER(10) PRIMARY KEY, name VARCHAR2(50), department VARCHAR2(30));
也可以在已有的表上通过ALTER TABLE语句添加主键约束,如:ALTER TABLE employees ADD CONSTRAINT pk_employees PRIMARY KEY (employee_id);
二、唯一约束(Unique Constraint)
定义与作用:确保表中某一列或一组列的值是唯一的,但与主键不同的是,唯一约束列可以包含NULL值,并且一个表可以有多个唯一约束。
创建方式:
在创建表时指定唯一约束,如:CREATE TABLE users (user_id NUMBER(10), username VARCHAR2(50) UNIQUE, email VARCHAR2(100));
或者在已有的表上添加唯一约束,如:ALTER TABLE users ADD CONSTRAINT uq_username UNIQUE (username);
三、外键约束(Foreign Key Constraint)
定义与作用:要求一个表中的数据值必须匹配另一个表中的数据值,用于维护表与表之间的引用完整性。例如,员工表中的部门ID列可以设置为外键,引用部门表中的部门ID,从而确保员工表中的部门ID必须是部门表中存在的有效ID。
创建方式:
在创建表时指定外键约束,如:CREATE TABLE employees (employee_id NUMBER(10), department_id NUMBER(10), CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(department_id));
也可以在已有的表上通过ALTER TABLE语句添加外键约束,如:ALTER TABLE employees ADD CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(department_id);
四、非空约束(NOT NULL Constraint)
定义与作用:用于确保列中的值不能为NULL。
创建方式:在创建表时或修改表结构时指定列不允许为空,如:CREATE TABLE employees (employee_id NUMBER(10) NOT NULL, name VARCHAR2(50));
五、检查约束(Check Constraint)
定义与作用:用于确保列中的值满足特定的条件。例如,可以设置一个检查约束来限制员工表中的工资列必须大于0。
创建方式:在创建表时或修改表结构时添加检查约束,如:CREATE TABLE employees (employee_id NUMBER(10), salary NUMBER(10,2) CHECK (salary > 0));
六、REF约束
定义与作用:REF列默认引用另一个对象类型或关系表中的对象。REF约束可以进一步描述REF列与它所引用的对象之间的关系。
|