在Oracle数据库中,主键是一种特殊的约束,用于确保表中的每一行都具有唯一的标识,主键可以由一个或多个列组成,这些列的组合值在整个表中必须是唯一的,主键的主要作用是提高数据的完整性和一致性,以及加速查询操作,在本教程中,我们将详细介绍如何在Oracle数据库中定义主键的规范写法。
(图片来源网络,侵删)1、单列主键
单列主键是指由表中的单个列组成的主键,这是最简单的主键类型,也是最常见的类型,在创建表时,可以使用以下语法定义单列主键:
CREATE TABLE employees ( employee_id NUMBER(6) NOT NULL, first_name VARCHAR2(20), last_name VARCHAR2(25), email VARCHAR2(25), phone_number VARCHAR2(20), hire_date DATE, job_id VARCHAR2(10), salary NUMBER(8, 2), commission_pct NUMBER(2, 2), manager_id NUMBER(6), department_id NUMBER(4), PRIMARY KEY (employee_id) );
在上面的示例中,我们创建了一个名为employees
的表,其中包含一个名为employee_id
的单列主键。NOT NULL
约束确保employee_id
列中的值不能为空。
2、多列主键
多列主键是指由表中的多个列组成的主键,在创建表时,可以使用以下语法定义多列主键:
CREATE TABLE employees ( employee_id NUMBER(6) NOT NULL, first_name VARCHAR2(20), last_name VARCHAR2(25), email VARCHAR2(25), phone_number VARCHAR2(20), hire_date DATE, job_id VARCHAR2(10), salary NUMBER(8, 2), commission_pct NUMBER(2, 2), manager_id NUMBER(6), department_id NUMBER(4), PRIMARY KEY (first_name, last_name) );
在上面的示例中,我们创建了一个名为employees
的表,其中包含一个名为first_name
和last_name
的多列主键。NOT NULL
约束确保这两列中的值都不能为空,当表中的数据量较大时,使用多列主键可以提高查询性能。
3、复合主键
复合主键是指由表中的多个列组成的主键,但这些列的组合值不要求在整个表中是唯一的,在创建表时,可以使用以下语法定义复合主键:
CREATE TABLE employees ( employee_id NUMBER(6) NOT NULL, first_name VARCHAR2(20), last_name VARCHAR2(25), email VARCHAR2(25), phone_number VARCHAR2(20), hire_date DATE, job_id VARCHAR2(10), salary NUMBER(8, 2), commission_pct NUMBER(2, 2), manager_id NUMBER(6), department_id NUMBER(4), PRIMARY KEY (first_name, last_name, email) );
在上面的示例中,我们创建了一个名为employees
的表,其中包含一个名为first_name
、last_name
和email
的复合主键。NOT NULL
约束确保这三列中的值都不能为空,当表中的数据量较大时,使用复合主键可以提高查询性能,需要注意的是,复合主键中的每一列都必须具有唯一的值,但组合值不需要在整个表中是唯一的。
4、IDENTITY主键
IDENTITY主键是指在插入数据时,由数据库自动生成的主键值,在创建表时,可以使用以下语法定义IDENTITY主键:
CREATE TABLE employees ( employee_id IDENTITY(1,1) NOT NULL, first_name VARCHAR2(20), last_name VARCHAR2(25), email VARCHAR2(25), phone_number VARCHAR2(20), hire_date DATE, job_id VARCHAR2(10), salary NUMBER(8, 2), commission_pct NUMBER(2, 2), manager_id NUMBER(6), department_id NUMBER(4), );
在上面的示例中,我们创建了一个名为employees
的表,其中包含一个名为employee_id
的IDENTITY主键,当向表中插入数据时,数据库会自动为employee_id
列分配一个唯一的值,IDENTITY主键通常用于自增字段,例如序列号或唯一标识符,需要注意的是,IDENTITY主键只能在整数数据类型上使用。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。