SQL的各种连接查询

一、内连接

概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。

           内连接(join 或者inner join )

SQL语法:

          select * fron table1 join table2 on table1.条件列名 = table2.条件列名;

          返回符合匹配条件的两表列

二、外连接

外连接分为左外连接(left join 或left outer join)、右外连接(right join 或者 right outer join)、和完全外连接 (full join 或者 full outer join)。

(1)左外连接(left join 或 left outer join)的结果就是left join子句中的左表的所有行,而不仅仅是链接列所匹配的行,如果左表中的某行在右表中没有匹配,则在相关联的结果行中右表的所有选择列均为空值(NULL)。

SQL语法:select * from  table1 left join table2 on table1.条件列名 = table2.条件列名;

注释:显示的就是table1中的所有行和table2中能匹配的行。

(2)右外连接(right join 或 right outer join )跟左外连接相反。                     

SQL语法:select * from table1 right join table2 on table1. 条件列= table2.条件列;

(3)完全外部连接(full join 或 full outer join)的结果就是显示左右表中的所有行,当某一个表中没有匹配的行时,则另一个表的选择列均以空值(NULL)显示,如果有则显示全部数据。

SQL语法:

select * from table1 full join table2 on table1.条件列名= table2.条件列名;

三、自连接

概念:一个表与自身进行连接,称为自连接。

例如:select * from table t1,table t2 where t1.条件列名=t2.条件列名;

四、UNION运算符

UNION是将产生的两个或多个记录集(字段要一样)并在一起,成为一个新的记录集。

UNION的结果集列名与UNION运算符中第一个Select语句的结果集的列名相同。

其中两种不同的用法是UNION和UNION ALL,区别在于UNION从结果集中删除重复的行。如果使用UNION ALL 将包含所有行并且将不删除重复的行。

SQL语法:

select 条件列名1,条件列名2,条件列名3 from table1 UNION select 条件列名1,条件列名2,条件列名3 from table2;

与JOIN区别:JOIN是表间做交连后里面条件相同的部分记录产生一个记录集,相当于做交集运算,而union是做并集运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅、途

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值