内连接、左外连接、右外连接

这三种连接一般是sql相关的数据操作才有的概念

内连接

概念

内连接是最早的一种连接操作,也被称为普通连接或自然连接。它根据指定的连接条件,从两个或多个表中返回匹配的行。只有当两个表中的指定列的值相等时,才返回相应的行。如果某个表中的记录在另一个表中没有匹配的记录,则该记录不会出现在结果集中。因此,内连接可能会导致信息的丢失。

应用案例

假设我们有两个表:Customers(客户)和 Orders(订单)。这两个表通过 customer_id 字段关联。

Customers 表
customer_id name
1 Alice
2 Bob
3 Carol

Orders 表
order_id customer_id product
1 1 Apple
2 2 Banana
3 1 Cherry

如果我们想要找出所有下过订单的客户及其订单信息,可以使用内连接:

SELECT Customers.name, Orders.product  
FROM Customers  
INNER JOIN Orders ON Customers.customer_id = Orders.customer_id;

左外连接

概念

左外连接在连接两个表时,会返回左表(即连接操作符左边的表)的所有记录,以及右表(即连接操作符右边的表)中符合连接条件的记录。如果右表中没有与左表匹配的记录,则结果集中对应的字段会显示为NULL。这种连接方式确保左表的所有记录都会被返回,即使它们在右表中没有匹配项

应用案例

使用相同的 Customers 和 Orders 表,如果我们想要列出所有客户,即使他们没有订单,并显示他们的订单信息(如果有的话),我们可以使用左外连接:

SELECT Customers.name, Orders.product  
FROM Customers  
LEFT JOIN Orders ON Customers.customer_id = Orders.customer_id;

结果:
name product
Alice Apple
Alice Cherry
Bob Banana
Carol NULL
可以看到,左表Customer的所有需要展示的name记录全展示了,右表product因为Carol的customer_id不匹配,所以为空

右外连接

右外连接与左外连接刚好相反,返回右表所有记录及左表不匹配时为空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值