在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主键只能在整数数据类型上使用。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/513750.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复