Oracle数据库中主键和外键的作用和区别(oracle主键外键)

主键和外键在Oracle数据库中会被用到,它们在实体模型及关系模型中都有重要作用。首先,我们来看一看它们之间的区别以及它们的作用。

## 一、作用:

### 主键:

主键是每个表中唯一标识行的列,没有重复值,主键唯一标识每一条记录,每张表只能有一个主键,用于保证表中记录唯一性。

一个主键一般是由多个列组成,可以使用唯一性约束来定义,能够快速标识唯一行。多个列组成的主键也称为联合主键(Composite Key)。

### 外键:

外键用于在多个表之间建立强关联,一般是由某一表的主键来引用另一表的主键,称为外键约束。外键不能写在主表中,而是放在从表,外键的值不能重复,也不能为空。

## 二、区别:

1. **作用不同:** 主键是用于标识每行记录唯一性的,而外键则是用于建立表之间联系的;

2. **字段个数不同:** 主键可以由一个列(称为**主键列**)或多个列(称为**联合主键**)组成,但是外键一般在表中只有一个列;

3. **字段类型不同:** 当主键由多个列组成时,每列的类型可以不同;而外键要求两个表中引用的列类型必须一致。

## 三、例子:

Oracle中建立主键和外键:

“`sql

— 创建主键

CREATE TABLE student (

sid INT NOT NULL,

name VARCHAR(50),

age INT,

CONSTRAINT pk_student PRIMARY KEY (sid)

);

— 创建从表

CREATE TABLE score (

sid INT NOT NULL,

math INT,

eng INT,

— 外键引用

CONSTRAINT fk_student FOREIGN KEY (sid) REFERENCES student(sid)

);


通过以上例子可以看出,外键引用的就是主键。而外键是在从表中建立的,而不是在主表中。

总之,主键和外键的作用和区别也不难理解,它们都起着极其重要的作用。主键是每个表唯一标识行的列,外键用于在不同表之间建立联系,传递参照完整性。

数据运维技术 » Oracle数据库中主键和外键的作用和区别(oracle主键外键)