oracle中关于天赋定义及使用6种约束(oracle 6种约束)
Oracle 中关于天赋定义及使用 6 种约束
在 Oracle 数据库中,天赋定义是创建表时指定的一些约束条件,用于保证表的数据完整性和一致性。包括主键约束、唯一约束、非空约束、外键约束、检查约束和默认约束。本文将介绍这些约束的定义和使用方法。
1. 主键约束
主键是一列或一组列,其值必须唯一且不为空,用于唯一标识表中的每一行数据。在创建表时,可以通过 PRIMARY KEY 关键字指定主键约束。
例如,创建一个名为 students 的表,其中包含学生 ID、姓名和年龄三列,其中学生 ID 是主键:
CREATE TABLE students (
student_id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50),
age NUMBER(3)
);
在表中插入数据时,如果插入的数据中存在重复的主键值,将会出现主键冲突的错误。
2. 唯一约束
唯一约束要求列中的值是唯一的,但可以包含空值。在创建表时,可以通过 UNIQUE 关键字指定唯一约束。
例如,创建一个名为 employees 的表,其中包含员工 ID、姓名和邮箱三列,其中邮箱必须是唯一的:
CREATE TABLE employees (
employee_id NUMBER(10),
name VARCHAR2(50),
eml VARCHAR2(50) UNIQUE
);
在表中插入数据时,如果插入的数据中存在与已有数据重复的唯一值,将会出现唯一约束冲突的错误。
3. 非空约束
非空约束指定列中的值不能为空,即必须包含有效的数据。在创建表时,可以通过 NOT NULL 关键字指定非空约束。
例如,创建一个名为 books 的表,其中包含书名、作者和价格三列,其中书名和作者不能为空:
CREATE TABLE books (
title VARCHAR2(100) NOT NULL,
author VARCHAR2(50) NOT NULL,
price NUMBER(10,2)
);
在表中插入数据时,如果插入的数据中有任意一个非空列是空值,将会出现非空约束冲突的错误。
4. 外键约束
外键约束用于定义两个表之间的关系,其中一个表的列引用了另一个表的主键。在创建表时,可以通过 FOREIGN KEY 关键字指定外键约束。
例如,创建一个名为 orders 的表,其中包含订单 ID、顾客 ID 和订单金额三列,其中顾客 ID 是 customers 表中的主键:
CREATE TABLE orders (
order_id NUMBER(10),
customer_id NUMBER(10) FOREIGN KEY REFERENCES customers(customer_id),
amount NUMBER(10,2)
);
在表中插入数据时,如果插入的数据中的顾客 ID 在 customers 表中不存在,将会出现外键约束冲突的错误。
5. 检查约束
检查约束用于限制列中的值必须符合一定的条件。在创建表时,可以通过 CHECK 关键字指定检查约束。
例如,创建一个名为 products 的表,其中包含产品 ID、产品名称和产品数量三列,其中产品数量必须大于等于 0:
CREATE TABLE products (
product_id NUMBER(10),
product_name VARCHAR2(100),
quantity NUMBER(10),
CONSTRNT quantity_check CHECK (quantity >= 0)
);
在表中插入数据时,如果插入的数据中的产品数量小于 0,将会出现检查约束冲突的错误。
6. 默认约束
默认约束指定列的默认值,当插入数据时如果该列没有指定值,将使用默认值。在创建表时,可以通过 DEFAULT 关键字指定默认约束。
例如,创建一个名为 customers 的表,其中包含客户 ID、客户名称和注册日期三列,其中注册日期默认为当前日期:
CREATE TABLE customers (
customer_id NUMBER(10),
customer_name VARCHAR2(100),
registration_date DATE DEFAULT sysdate
);
在插入数据时,如果未指定注册日期,则将使用默认值。