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)
);
通过以上例子可以看出,外键引用的就是主键。而外键是在从表中建立的,而不是在主表中。
总之,主键和外键的作用和区别也不难理解,它们都起着极其重要的作用。主键是每个表唯一标识行的列,外键用于在不同表之间建立联系,传递参照完整性。