Oracle数据库提供了多种完整性约束来确保数据的准确性和一致性。以下是主要的完整性约束类型:
CREATE TABLE employees (
emp_id NUMBER PRIMARY KEY,
emp_name VARCHAR2(100)
);
CREATE TABLE products (
product_id NUMBER,
product_code VARCHAR2(20) UNIQUE,
product_name VARCHAR2(100)
);
CREATE TABLE customers (
cust_id NUMBER,
cust_name VARCHAR2(100) NOT NULL,
email VARCHAR2(100)
);
CREATE TABLE orders (
order_id NUMBER PRIMARY KEY,
cust_id NUMBER REFERENCES customers(cust_id),
order_date DATE
);
CREATE TABLE employees (
emp_id NUMBER,
emp_name VARCHAR2(100),
salary NUMBER CHECK (salary > 0),
gender CHAR(1) CHECK (gender IN ('M', 'F'))
);
CREATE TABLE orders (
order_id NUMBER,
order_date DATE DEFAULT SYSDATE,
status VARCHAR2(20) DEFAULT 'PENDING'
);
约束可以在创建表时定义,也可以在表创建后添加:
-- 创建表后添加约束
ALTER TABLE employees ADD CONSTRAINT emp_pk PRIMARY KEY (emp_id);
-- 禁用/启用约束
ALTER TABLE employees DISABLE CONSTRAINT emp_pk;
ALTER TABLE employees ENABLE CONSTRAINT emp_pk;
-- 删除约束
ALTER TABLE employees DROP CONSTRAINT emp_pk;
这些完整性约束是维护数据库数据质量的关键工具,确保数据符合业务规则和关系要求。