oracle如何设置主键?

什么是主键?

在数据库中,主键是用来唯一标识一张表中的一条记录的字段或字段集合。主键的作用是保证数据表中的数据唯一性,并且可以为数据表中的数据建立关系,方便进行数据的管理和操作。

主键的特点:

唯一性:一张表中只能有一个主键,记录唯一性得到保障。

不为空性:主键可以是一个或多个字段组成,但组成主键的所有字段均不能为NULL。

不变性:主键的值在记录插入以后不能修改。

主键的类型

1. 自增主键

自增主键是指主键自动递增的一种形式,由数据库自动生成一个唯一的整数值来作为主键,不需要用户手动输入,一般使用的是自增长的id字段。

CREATE TABLE test(

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(20) NOT NULL

);

2. 唯一索引主键

唯一索引主键是指使用唯一的索引来保证主键的唯一性,由用户输入主键值,如果用户输入重复的值时,则会报错,常用的有uuid。

CREATE TABLE test(

id CHAR(36) PRIMARY KEY,

name VARCHAR(20) NOT NULL

);

3. 复合主键

复合主键是使用多个字段来作为主键,可以有多列加入为主键,比如用户表可以使用(id,name)字段作为复合主键。

CREATE TABLE test(

id INT NOT NULL,

name VARCHAR(20) NOT NULL,

PRIMARY KEY(id,name)

);

如何设置主键?

在Oracle中,可以通过在创建表时对字段进行设置,或者对已有的表进行修改来设置主键。

1. 表创建时设置主键

在创建表时,可以使用CONSTRAINT关键字来指定主键:

CREATE TABLE test(

id INT NOT NULL,

name VARCHAR(20) NOT NULL,

CONSTRAINT pk_test PRIMARY KEY(id)

);

其中“pk_test”为主键的名称。

2. 表创建时设置复合主键

在创建表时,可以使用多个字段来设置复合主键:

CREATE TABLE test(

id INT NOT NULL,

name VARCHAR(20) NOT NULL,

CONSTRAINT pk_test PRIMARY KEY(id, name)

);

其中“pk_test”为主键的名称。

3. 已有表添加主键

在已有的表中添加主键,使用ALTER TABLE语句,先添加主键列,然后再添加主键约束:

ALTER TABLE test

ADD id INT NOT NULL;

ALTER TABLE test

ADD CONSTRAINT pk_test PRIMARY KEY(id);

其中“pk_test”为主键的名称。

4. 已有表添加复合主键

在已有的表中添加复合主键,使用ALTER TABLE语句,添加主键列后再添加主键约束:

ALTER TABLE test

ADD id INT NOT NULL;

ALTER TABLE test

ADD name VARCHAR(20) NOT NULL;

ALTER TABLE test

ADD CONSTRAINT pk_test PRIMARY KEY(id, name);

其中“pk_test”为主键的名称。

结束语

主键是关系型数据库中至关重要的一环,可以保证数据的唯一性,帮助表与表之间建立关系,方便数据的管理。通过本文,我们了解了主键的作用和类型,以及在Oracle中如何设置主键。希望对大家有所帮助。

数据库标签