LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴永久免费OA]SQL中的各种连接的区别总结

admin
2023年10月8日 8:34 本文热度 704

前言

  今天主要的内容是要讲解SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 where区别和用法,不用我说其实前面的这些基本SQL语法各位攻城狮基本上都用过。但是往往我们可能用的比较多的也就是左右连接和内连接了,而且对于许多初学者而言不知道什么时候该用哪种语法进行查询,并且对于左右,或者内连接查询的时候关于ON 和where 的作用也是模糊不清的,说不出其中的一个大概的差别,因此接下来请容我把它们好好描述一遍。

数据库(MS Sql Server)表结构和对应数据

Students 学生表:

Class 班级表:

Join(where联立查询)

概念:用于两表或多表之间数据联立查询。

select * from Students s,Class c where s.ClassId=c.ClassId

Inner Join(内连接查询)

概念:与Join相同,两表或多表之间联立查询数据,因此我们在使用多表join查询的时候既可以使用where关联,也可以是inner join关联查询。

select * from Students s inner join Class c on s.ClassId=c.ClassId

Left Join(左连接查询)

概念:以左表中的数据为主,即使与右表中的数据不匹配也会把左表中的所有数据返回。

select * from Students s left join Class c on s.ClassId=c.ClassId

Right Join(右连接查询)

概念:与Left Join的用法相反,是以右表中的数据为主,即使左表中不存在匹配数据也会把右表中所有数据返回。

select * from Students s right join Class c on s.ClassId=c.ClassId

Full Join(全连接查询)

概念:返回表中所有的数据数据,无论匹配与否。

select * from Students s Full JOIN Class c on s.ClassId=c.ClassId

On、where的异同

这两个概念中也是绝大多数人无法区分到底它们两者之间有何区别,我什么时候使用On,什么时候使用where,下面将分别展示两者的异同。

ON的使用无论是左右内全都使用到了On来进行关联:

对于Inner Join 的作用就是起到了与where相同的作用条件筛选:

select * from Students s inner JOIN Class c on s.ClassId=c.ClassId and s.Sex='男'

对于左右连接而言,无论查询条件是否满足都会返回对应所指向的那边的所有数据:

select * from Students s left join Class c on s.ClassId=c.ClassId and s.Sex='男'

对于Full Join 而言无论,只有同时满足的时候才会返回全部关联的数据,假如有一方不满足返回以左边的表数据为基准返回:

--全连接
select * from Students s full join Class c on s.ClassId=c.ClassId 
--全连接加on查询
select * from Students s full join Class c on s.ClassId=c.ClassId and s.Sex='男'

where的用法就不描述了因为这个咱们用的都比较多,下面说明一下两者的概念问题:

1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录(以左连接为例)。
2、where条件是在临时表生成好后,再对临时表产生的数据进行过滤条件筛选。

结论:on用作于生成临时表时的条件筛选,where用作于对临时表中的记录进行过滤。

总结:

  最后我想说的是,有时候我们总认为概念性的东西很简单而忽视了实践。其实往往一些基础性的东西才是为我们往后构建万丈高楼的前提,坚持多实践、多动手,你会发现其实这些问题并不难。


该文章在 2023/10/8 8:55:23 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved