Oracle下SQL语句练习(2019/6/11)SQL 连接(Joins)

(1)join

SQL join 用于把来自两个或多个表的行结合起来。

最常见的 JOIN 类型:

(1) SQL INNER JOIN(简单的 JOIN)、

(2)SQL LEFT JOIN、

(3)SQL  RIGHT JOIN、

(4)SQL FULL JOIN,

其中前一种是内连接,后三种是外链接。

(2)INNER JOIN语法

select column_name(s)
from table 1
INNER JOIN table 2
ON
table 1.column_name=table 2.column_name

例子如下:按部门编号查询员工的名字及工作所在地,链接了Scott用户下的表EMP和表DEPT

 三表链接例子:

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

有Orders,Customers,shippers三张表进行链接,先将其中两张表链接成一张表,在链接第三张表。

(3)LEFT JOIN

SQL LEFT JOIN 语法

SELECT column_name(s)                
FROM table1                
LEFT JOIN table2                
ON table1.column_name=table2.column_name;    

或者

SELECT column_name(s)                
FROM table1                
LEFT OUTER JOIN table2                
ON table1.column_name=table2.column_name; 

注释:在一些数据库中,LEFT JOIN称为LEFT OUT ER JOIN。 

(3)RIGHT JOIN

SQL RIGHT JOIN 语法

SELECT column_name(s)
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;

(4)同样的查询语句,三种链接,结果对比

 

对比分析:

(1)内连接返回的是两表匹配的值,也就是说,只返回两个表都匹配到的行。

(2)左链接返回左表的所有行,右链接返回右表所有行。

(3)三种链接的关系图

 

(5)其他链接形式

 (1)当左(表1)或右(表2)表记录匹配时,FULL OUTER JOIN关键字将返回所有记录。 

 注意: FULL OUTER JOIN可能会返回非常大的结果集! 

(2)自连接语法

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;

例子:查询EMP表下部门不同,但是工作相同的员工的姓名,部门和工作

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值