集合运算与连接运算
1、集合运算:
1.1、Union,对2个结果进行纵向连接,类似于数学中的并集运算
要求2个运算结果必须有相同的列且对应列的类型必须一致,
ORDER BY子句只能在最后使用一次,对运算结果进行排序
这里会丢弃重复的记录,只保留一个,如果需要全部显示出来则需要使用union all
Select * from student where ssex='男' union Select * from student where ssex='女'
1.2、Intersect:
选取表中共同的部分,语法同union基本一致
1.3、Except:
减法,计算两个集合的差集,语法与union也是一致的
2、连接:
集合是纵向连接,而连接是横向连接
2.1、内连接:
Select select a.*,b.* from student a inner join sc b on a.sid=b.sid
会根据连接项进行连接,没有匹配的记录会被丢弃
2.2、外连接:左外连接,右外连接,全外连接
a、左外连接以左表为主表,当右表没有匹配到左表的记录会用空值填充
select a.*,b.* from student a left join sc b on a.sid=b.sid
右外连接同左外连接一样,只是这里的主表是右表,左表为连接到的会用空值填充
select a.*,b.* from student a right join sc b on a.sid=b.sid
(这里全部连接上了)
c、全外连接两个表没有连接到的都会用空值填充
select a.*,b.* from student a full join sc b on a.sid=b.sid
3张以上表连接,可以理解为先两张表连接结果再与第三张表进行连接
select a.*,b.*,c.*
from student a left join sc b on a.sid=b.sid
left join course c on b.cid=c.cid
交叉连接,连接结果是两张表的笛卡尔积,即表1中的每条记录与表2中的每条记录分别连接,最终结果条数是表1和表2条数的乘积
select a.*,b.* from student a cross join sc b
尽管很渺小,但终究会变得伟大
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!