ORACLE 各种连表方式查询

开发工具与关键技术:Oracle sql*plus PLSQL Developer
作者:华境聪
撰写时间:2019年04月02日

话不多说直入正题

SELECT *
FROM a
join b on a.id = b.id;//SQL语法表的内连接方式;

SELECT *
FROM a
left join b on a.id = b.id;//SQL语法表的左外连接方式;以左表为主表的右表为辅表,查询主表的全部字段;

SELECT *
FROM a
Right join b on a.id = b.id;//SQL语法表的右外连接方式;以左表为主表的右表为辅表,查询主表的全部字段;

SELECT *
FROM a b, a c
WHERE b.id = c.id ;
//Oracle语法表的自连接方式;在一个表中查询两个具有一定条件的字段进行过滤,筛选

SELECT *
FROM a
Full Outer Join b
ON (a.id = b.id) ;-//SQL语法表的满外连接方式;也就是左外和右外连接的并集
例如查询 成绩表和学生表的全部信息,如下所示
select *
from sc
Full Outer Join student on sc.sno = student.sno
在这里插入图片描述
SELECT city
FROM a
NATURAL JOIN b;
// Oracle语法表的自然连接方式;在两个表中查询两个具有相同的字段进行连接,筛选
如果两个表中具有两个以上的相同字段,查询出来的数据有可能就不是你想要的数据了,这是要注意的地方
例如查询学生的选课请况,如下所示
select sno,cno
from sc
NATURAL JOIN student
在这里插入图片描述
在这里推荐用SQL 1999语法去做连表查询相关业务,因为这种语法适用大多数数据库中使用,而Oracle语法仅局限于该数据库的使用范围;用到的方法都不难理解,稍花时间即可消化。

猜你喜欢

转载自blog.csdn.net/qq_41979469/article/details/88964707