Oracle数据库管理中的五大约束条件
在Oracle数据库管理中,约束条件是非常重要的概念。简单来说,约束条件是一组规则,帮助了解如何在数据库中存储数据。它们确保数据准确性,防止数据损坏,并确保数据在不同的表之间保持一致性。
下面我们将讲述Oracle数据库管理中的五大约束条件。
1. 非空约束
非空约束是最基本的约束条件之一,它确保列中的值不能为空。在Oracle数据库中,可以将“NOT NULL”添加到列定义中,并在插入或更新数据时强制执行非空值条件。如果尝试插入空值,则数据库会返回一个错误消息。
示例:
创建一张表,包含非空约束:
CREATE TABLE Employees
( Employee_ID NUMBER(10) PRIMARY KEY,
Last_Name VARCHAR2(50) NOT NULL,
First_Name VARCHAR2(50) NOT NULL,
Salary NUMBER(8,2)
);
在以下查询中,如果省略任一列,则会产生错误:
INSERT INTO Employees (Employee_ID, Last_Name, Salary)
VALUES (1, 'Smith', 5000);
2. 唯一约束
唯一约束确保表中的每个记录都具有唯一值,并防止出现重复数据。在Oracle数据库中,可以将“UNIQUE”添加到列定义中,并在插入或更新数据时强制执行唯一性条件。
示例:
创建一张表,包含唯一约束:
CREATE TABLE Customers
( Customer_ID NUMBER(10) PRIMARY KEY,
Customer_Name VARCHAR2(50) UNIQUE,
City VARCHAR2(50),
);
在以下查询中,如果尝试插入重复值,则会产生错误:
INSERT INTO Customers (Customer_ID, Customer_Name, City)
VALUES (1, 'Joe', 'New York');
INSERT INTO Customers (Customer_ID, Customer_Name, City)
VALUES (2, 'Joe', 'Chicago');
3. 主键约束
主键约束是一组一个或多个列,用于确保表中每个记录都具有唯一标识,并防止出现重复数据。在Oracle数据库中,可以用“PRIMARY KEY”关键字在列定义中指定主键列。
示例:
创建一张表,包含主键约束:
CREATE TABLE Orders
( Order_ID NUMBER(10) PRIMARY KEY,
Order_Date DATE,
Customer_ID NUMBER(10),
CONSTRNT fk_customer_id
FOREIGN KEY (Customer_ID)
REFERENCES Customers(Customer_ID)
);
在以下查询中,如果尝试插入重复主键值,则会产生错误:
INSERT INTO Orders (Order_ID, Order_Date, Customer_ID)
VALUES (1, '01-JAN-21 12.00.00 AM', 1);
INSERT INTO Orders (Order_ID, Order_Date, Customer_ID)
VALUES (1, '01-JAN-21 01.00.00 AM', 2);
4. 外键约束
外键约束是一组列,它们引用了另一张表的主键列。在Oracle数据库中,可以用“FOREIGN KEY”关键字在列定义中指定外键列。
示例:
创建两张表,其中一张表的列是另一张表的主键:
CREATE TABLE Customers
( Customer_ID NUMBER(10) PRIMARY KEY,
Customer_Name VARCHAR2(50),
City VARCHAR2(50)
);
CREATE TABLE Orders
( Order_ID NUMBER(10) PRIMARY KEY,
Order_Date DATE,
Customer_ID NUMBER(10),
CONSTRNT fk_customer_id
FOREIGN KEY (Customer_ID)
REFERENCES Customers(Customer_ID)
);
在以下查询中,如果尝试插入不存在的主键值,则会产生错误:
INSERT INTO Orders (Order_ID, Order_Date, Customer_ID)
VALUES (1, '01-JAN-21 12.00.00 AM', 3);
5. 检查约束
检查约束用于确保表中的记录符合指定的条件。在Oracle数据库中,可以通过在列定义中使用“CHECK”关键字来指定检查约束。
示例:
创建一张表,包含检查约束:
CREATE TABLE Products
( Product_ID NUMBER(10) PRIMARY KEY,
Product_Name VARCHAR2(50),
Product_Price NUMBER(8,2),
CONSTRNT check_product_price
CHECK (Product_Price > 0)
);
在以下查询中,如果尝试插入检查约束不通过的记录,则会产生错误:
INSERT INTO Products (Product_ID, Product_Name, Product_Price)
VALUES (1, 'Shirt', -10);
在Oracle数据库管理中,约束条件是非常重要的概念,可以帮助确保数据准确性、防止数据损坏,并确保数据在不同的表之间保持一致性。五大约束条件的应用可以帮助数据库管理员更好地管理和保护数据库。