🎈个人公众号:🎈 :✨✨ 可为编程 ✨✨ 🍟🍟
🔑个人信条:🔑 知足知不足 有为有不为 为与不为皆为可为🌵
🍉本篇简介:🍉 本片详细说明了SQL 连接(内连接,外连接)使用规则和注意要点,并给出具体操作实例,如有出入还望指正。

关注公众号【可为编程】回复【面试】领取业界最新面试题大全!!!

内连接

现在有两张表,学生表student1,成绩表SC1,两张表的数据如下

SQL 连接(内连接,外连接)_数据库

现在要对两张表做连接查询,连接一般需要写条件,where 或者 on 后面 ,

select * from student,SC where student.sid=SC.sid from 后面直接写两个表名,这样写等价于内连接 如果不写 where 条件,相当于笛卡尔积。

SQL 连接(内连接,外连接)_sql_02

带有 where 条件 相当于内连接

SQL 连接(内连接,外连接)_sql_03

A(inner,left,right) join B on A.1=B.1 on 不写会报错
select * from student inner join SC on student.sid=SC.sid

关注公众号【可为编程】回复【面试】领取业界最新面试题大全!!!

外连接(左外连接,右外链接)

左联接,是包括 A,B 表的交集 和 A 表的数据 (A eft join B on A.1=B.1),如果 A 表中有的数据 B 表没有找到相等的,会显示A表的数据,B表中的部分会为 null ,下面的结果就是成绩表中没有赵六和田七的数据的结果

SQL 连接(内连接,外连接)_外连接_04

如果 and 写在 on 后面,表示的是在做关联时不关联被过滤掉的数据,比如上面的数据,写 and sc.score>60 条件之后,会过滤掉成绩<=60的数据,而张三丰每一门课的成绩都小于60,但是会有张三丰的数据,只是后面的为null,如下:

SQL 连接(内连接,外连接)_内连接_05

上面的数据是过滤掉成绩小于60的数据之后,张三丰的成绩都小于60,并不是没有张三丰这个数据了,而是他后面的为null,可以这样理解,on 后面的 and 条件是代表关联与否,不满足就不关联,但A表的数据还是要全部都有的。

如果成绩>60是写在where 里的,where 是对结果进行过滤的,所以会把上面的结果不满足成绩>60的数据过滤掉,即:

SQL 连接(内连接,外连接)_数据库_06

欢迎感兴趣的小伙伴一起探讨学习知识,以上是个人的一些总结分享,如有错误的地方望各位留言指出,十分感谢。觉得有用的话别忘点赞、收藏、关注,手留余香! 😗 😗 😗


欢迎大家关注【可为编程】,成长,进步,编程,技术、掌握更多知识!

SQL 连接(内连接,外连接)_数据_07