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_id
与customers
表中的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数据库中创建表并设置数据完整性规则。记住,合理的约束不仅有助于维护数据的准确性,还能提高查询性能。在实际应用中,应根据具体需求和业务逻辑选择合适的约束类型。