资讯专栏INFORMATION COLUMN

带你了解数据库中JOIN的用法

Sleepy / 1494人阅读

摘要:本次会介绍数据库中的的用法以及它们之间的区别。所以一共有种选择了,也就是笛卡尔积。文末本章节主要介绍了数据库中的用法,以及其他方面的小知识点。

前言
欢迎关注公众号:Coder编程
获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!

本章主要介绍数据库中Join的的用法,也是我们在使用数据库时非常基础的一个知识点。本次会介绍数据库中的inner joinleft joinright join 的用法以及它们之间的区别。 文章如有错误还请大家及时指出~

以下都是采用mysql数据库
Join

相信大家在学习数据库的使用时,都有使用过Join,对数据库中的两张或两张以上表进行连接操作。
Join 分为:

内连接(inner join)

外连接(outer join)

其中外连接分为:

左外连接(left outer join)

右外连接(right outer join)

全外连接(full outer join)

说明:

1.其中外连接的“OUTER”关键字可以省略不写。
2.内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录。
笛卡尔积
在我们进行多表联合查询的时候会出现的一种情况——笛卡尔积现象

我们以下面两张表举例:

学生表(Student)

ID StudentName StudentClassID
1 小明 1
2 小红 2
3 小兰 3
4 小吕 2
5 小梓 1

班级表(Class)

ClassID ClassName
1 软件一班
2 软件二班
3 软件三班

当我们进行查询操作的时候:

select * from Student,Class;


就会出现上面的情况,也就是笛卡尔现象,表Student中有5条记录,表Class中有3条记录,那么对于表Student而言有5种选择,对于表Class来说有3种选择。所以一共有 5 * 3 = 15种选择了,也就是笛卡尔积


内连接——inner join

内连接查询返回满足条件的所有记录,默认情况下没有指定任何连接则为内连接。
例如:查询xx学生在xx班级 沿用上面的数据表

select stu.StudentName,cl.ClassName from Student stu inner join Class cl on stu.StudentClassID=cl.ClassID;

---
查询结果

左外连接——left join

左外连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行。
我们在原Student 表中新增学生:小美

例如: 查询xx学生在xx班级 沿用上面的数据表

select stu.StudentName,cl.ClassName from Student stu left join Class cl on stu.StudentClassID=cl.ClassID;

查询结果

右外连接——right join

右外连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的连接操作符右边表的其他行。
我们在原Class表中新增班级:软件四班


例如: 查询xx学生在xx班级 沿用上面的数据表

select stu.StudentName,cl.ClassName from Student stu right join Class cl on stu.StudentClassID=cl.ClassID;

查询结果

全连接——full join

全连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的其他行。

注:mysql默认不支持full join。

这里我们就不做介绍了。


文末
本章节主要介绍了数据库中JOIN的用法,以及其他方面的小知识点。
欢迎关注公众号:Coder编程
获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!

推荐阅读

一篇让你理解进程与线程的区别与联系

通过“表白”的方式,让我们快速了解网络协议

一篇带你读懂TCP之“滑动窗口”协议

参考文章:

https://www.cnblogs.com/jacks...

http://www.360doc.com/content...

Github个人主页目录
Gitee个人主页目录

欢迎大家关注并Star~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/62871.html

相关文章

  • 带你了解据库JOIN用法

    摘要:本次会介绍数据库中的的用法以及它们之间的区别。所以一共有种选择了,也就是笛卡尔积。文末本章节主要介绍了数据库中的用法,以及其他方面的小知识点。 前言 欢迎关注公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识! 本章主要介绍数据库中Join的的用法,也是我们在使用数据库时非常基础的一个知识点。本次会介绍数据库中的inner join、left join、...

    liujs 评论0 收藏0
  • 带你了解据库JOIN用法

    摘要:本次会介绍数据库中的的用法以及它们之间的区别。所以一共有种选择了,也就是笛卡尔积。文末本章节主要介绍了数据库中的用法,以及其他方面的小知识点。 前言 欢迎关注公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识! 本章主要介绍数据库中Join的的用法,也是我们在使用数据库时非常基础的一个知识点。本次会介绍数据库中的inner join、left join、...

    twohappy 评论0 收藏0
  • 带你了解据库group by用法

    摘要:注意是先排序后分组语法语法说明,,表达式未封装在聚合函数中,必须包含在语句末尾的子句中。语句的存在弥补了关键字不能与聚合函数联合使用的不足。 前言 本章主要介绍数据库中group by的用法,也是我们在使用数据库时非常基础的一个知识点。并且也会涉及Join的使用,关于Join的用法,可以看我写的上一篇文章:带你了解数据库中JOIN的用法 如有错误还请大家及时指出~ 以下都是采用mysq...

    qc1iu 评论0 收藏0
  • 带你了解据库事务ACID特性

    摘要:前言前面我们介绍过数据库中带你了解数据库中的用法与带你了解数据库中的用法的相关用法。文末本章节主要简单介绍了数据库中事务的特性,下一章我们将详细介绍事务隔离。 前言 前面我们介绍过数据库中 带你了解数据库中JOIN的用法 与 带你了解数据库中group by的用法 的相关用法。本章节主要来介绍下数据库中一个非常重要的知识点事务,也是我们项目中或面试中经常会遇到的知识点。如有错误还请...

    hizengzeng 评论0 收藏0
  • 5分钟带你读懂事务隔离性与隔离级别

    摘要:串行化是最严格的隔离级别。接下来我们再提高一个事务隔离级别。事务隔离级别设置为查询事务隔离级别更改数据库隔离级别,设置隔离级别为串行化时间轴事务事务等待中这里就不再对流程做过多赘述。 前言 我们在上一章节中介绍过数据库的带你了解数据库中事务的ACID特性 的相关用法。本章节主要来介绍下数据库中一个非常重要的知识点事务的隔离级别。如有错误还请大家及时指出~ 问题: 事务的隔离级别有哪...

    muzhuyu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<