使用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语句进行连接,示例如下:
```sqlselect s.name, sc.math, sc.english
from student s inner join score scon s.id = sc.id;
在上面的查询中,我们使用INNER JOIN语句将学生表和成绩表连接在一起。我们使用上述语句指定连接的条件,即s.id=sc.id。我们还使用SELECT语句选择要显示的列。
运行上述SQL查询后,我们将得到以下结果:
NAME MATH ENGLISH
-------------------- --------------- ---------------Alice 88.5 90
Bob 92.3 87.6Charlie 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查询语句如何关联两个表的介绍。通过本文所述的方法,您可以轻松地查询和处理多个表中的数据。