当前位置:首页 > 行业动态 > 正文

Oracle数据库中关联主键的使用

在Oracle数据库中,关联主键用于建立表与表之间的关系,通过关联主键,可以将多个表中的数据进行连接和查询,实现数据的一致性和完整性。

主键的定义和使用

1、主键的概念:主键是表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行数据。

2、主键的创建:在创建表时,可以使用PRIMARY KEY关键字来定义主键,创建一个名为"students"的表,其中id为主键:

CREATE TABLE students (
    id NUMBER PRIMARY KEY,
    name VARCHAR(50),
    age NUMBER
);

3、主键的使用:主键的值不能重复且不能为空,在插入数据时,如果没有指定主键的值,系统会自动为其生成一个唯一的值,在查询数据时,可以利用主键进行快速定位和过滤。

外键的定义和使用

1、外键的概念:外键是一个表中的列或多列,其值必须与另一个表的主键的值相匹配,它用于建立两个表之间的关联关系。

2、外键的创建:在创建表时,可以使用FOREIGN KEY关键字来定义外键,创建一个名为"courses"的表,其中id为主键,student_id为外键,关联到"students"表的id列:

CREATE TABLE courses (
    id NUMBER PRIMARY KEY,
    name VARCHAR(50),
    student_id NUMBER,
    FOREIGN KEY (student_id) REFERENCES students(id)
);

3、外键的使用:外键的值必须存在于被引用表的主键中,在插入数据时,如果外键的值不存在于被引用表的主键中,系统会报错,在更新或删除数据时,如果被引用表中有与外键匹配的数据,也会报错,这样可以保证数据的一致性和完整性。

关联查询的使用

1、内连接(INNER JOIN):内连接返回两个表中满足条件的数据行,即只返回两个表中存在关联关系的数据行,查询学生选修的课程信息:

SELECT students.name, courses.name
FROM students
INNER JOIN courses ON students.id = courses.student_id;

2、左连接(LEFT JOIN):左连接返回左表中的所有数据行,即使右表中没有匹配的数据行,如果右表中没有匹配的数据行,则显示为NULL,查询所有学生的选课信息,包括没有选课的学生:

SELECT students.name, courses.name
FROM students
LEFT JOIN courses ON students.id = courses.student_id;

3、右连接(RIGHT JOIN):右连接返回右表中的所有数据行,即使左表中没有匹配的数据行,如果左表中没有匹配的数据行,则显示为NULL,查询所有课程的选课信息,包括没有学生选课的课程:

SELECT students.name, courses.name
FROM students
RIGHT JOIN courses ON students.id = courses.student_id;
0