Oracle数据库的六大约束条件
在Oracle数据库中,约束是一种强制性规则,用于保证数据的完整性和一致性。它们是控制数据库访问和维护数据完整性的重要工具。数据库约束条件可以分为六类:
1. 主键约束
主键约束用于确保数据库表中每行数据都有唯一的标识符。它是一种 unique 约束,可以保证每个行的标识符都是唯一的。它可以由一个或多个列组成,称为复合主键。
在Oracle数据库中,可以使用以下代码创建一个主键约束:
CREATE TABLE employee (
employee_id NUMBER(6) PRIMARY KEY,
first_name VARCHAR2(20),
last_name VARCHAR2(20),
hire_date DATE,
salary NUMBER(8,2)
);
2. 外键约束
外键约束用于确保数据库表之间的关系是有效的。外键约束可以强制实体间关系的一致性,如果不符合约束条件则不能进行数据修改。
在Oracle数据库中,可以使用以下代码创建一个外键约束:
CREATE TABLE orders (
order_id NUMBER(6),
customer_id NUMBER(6) REFERENCES customers(customer_id),
order_date DATE,
PRIMARY KEY (order_id)
);
3. 唯一约束
唯一约束用于确保数据库表中每个列的值都是唯一的。它是一种在表中某个或多个列上的 unique 约束,用于强制列中的值是唯一的。
在Oracle数据库中,可以使用以下代码创建一个唯一约束:
CREATE TABLE customers (
customer_id NUMBER(6),
customer_name VARCHAR2(50),
customer_eml VARCHAR2(100) UNIQUE,
customer_phone VARCHAR2(20),
PRIMARY KEY (customer_id)
);
4. 非空约束
非空约束用于确保数据库表中每个列的值都不为空。它是一种在表中某个或多个列上的 not null 约束,用于强制列中的值不能为空。
在Oracle数据库中,可以使用以下代码创建一个非空约束:
CREATE TABLE products (
product_id NUMBER(6) NOT NULL,
product_name VARCHAR(50),
product_description VARCHAR(500),
product_price NUMBER(8,2),
PRIMARY KEY (product_id)
);
5. 检查约束
检查约束用于确保数据库表中每行数据都符合指定条件。它是一种在表中某个或多个列上的 check 约束,用于对列的值进行规定的校验。
在Oracle数据库中,可以使用以下代码创建一个检查约束:
CREATE TABLE books (
book_id NUMBER(6),
book_name VARCHAR2(50),
book_author VARCHAR2(50),
book_price NUMBER(8,2),
CONSTRNT check_price CHECK (book_price > 0),
PRIMARY KEY (book_id)
);
6. 默认约束
默认约束用于确保数据库表中每行数据都满足默认值。它是一种在表中某个或多个列上的 default 约束,用于在未指定列值时提供默认值。
在Oracle数据库中,可以使用以下代码创建一个默认约束:
CREATE TABLE orders (
order_id NUMBER(6),
customer_id NUMBER(6),
order_date DATE DEFAULT SYSDATE,
PRIMARY KEY (order_id),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
总结
在Oracle数据库中,约束是确保数据完整性和一致性的工具。六种约束条件分别是主键约束、外键约束、唯一约束、非空约束、检查约束和默认约束。它们在数据库表设计、数据维护和数据访问中起着重要作用。