使用Oracle查询语句关联两个表(oracle 关联两个表)

使用Oracle查询语句关联两个表

在Oracle数据库中,查询语句是不可避免的。在实际场景中,有时需要查询两个或多个表中的数据。本文将介绍如何使用Oracle查询语句关联两个表。

我们需要先创建两个表并插入一些数据。假设我们有一个学生表和一个成绩表,学生表中包含学生的ID和姓名,成绩表中包含学生的ID和各科成绩。我们可以使用以下SQL语句创建表:

“`sql

create table student(

id number(10) primary key,

name varchar2(20) not null

);

create table score(

id number(10) not null,

math number(3,1),

english number(3,1),

primary key(id),

foreign key(id) references student(id)

);

insert into student values(1,’Alice’);

insert into student values(2,’Bob’);

insert into student values(3,’Charlie’);

insert into score(id,math,english) values(1,88.5,90);

insert into score(id,math,english) values(2,92.3,87.6);

insert into score(id,math,english) values(3,68.9,76.5);


现在我们需要使用SQL查询语句将学生表和成绩表关联起来。可以使用INNER JOIN语句进行连接,示例如下:

```sql
select s.name, sc.math, sc.english
from student s inner join score sc
on s.id = sc.id;

在上面的查询中,我们使用INNER JOIN语句将学生表和成绩表连接在一起。我们使用上述语句指定连接的条件,即s.id=sc.id。我们还使用SELECT语句选择要显示的列。

运行上述SQL查询后,我们将得到以下结果:

NAME                 MATH             ENGLISH
-------------------- --------------- ---------------
Alice 88.5 90
Bob 92.3 87.6
Charlie 68.9 76.5

如您所见,查询结果显示了学生的姓名、数学成绩和英语成绩。INNER JOIN语句连接了学生表和成绩表,并根据学生ID将它们匹配起来。

另外,我们也可以使用LEFT OUTER JOIN、RIGHT OUTER JOIN和FULL OUTER JOIN语句,它们分别表示左外连接、右外连接和完全外连接。LEFT OUTER JOIN返回左边表(student)的所有行和右边表(score)的匹配行。RIGHT OUTER JOIN返回右边表的所有行和左边表的匹配行。FULL OUTER JOIN返回左右两边表的所有行。这里我们给出一个LEFT OUTER JOIN的实例:

“`sql

select s.name, sc.math, sc.english

from student s left outer join score sc

on s.id = sc.id;


上述查询将返回一个结果集,其中包含student表中所有记录和score表中与student表ID匹配的记录。如果没有匹配,则成绩列将为NULL。代码输出如下:

NAME MATH ENGLISH

——————– ————— —————

Alice 88.5 90

Bob 92.3 87.6

Charlie 68.9 76.5


这就是Oracle查询语句如何关联两个表的介绍。通过本文所述的方法,您可以轻松地查询和处理多个表中的数据。

数据运维技术 » 使用Oracle查询语句关联两个表(oracle 关联两个表)