SQL JOIN

这篇博客介绍了SQL JOIN的基本概念和类型,包括INNER JOIN, CROSS JOIN, LEFT JOIN, RIGHT JOIN 和 FULL OUTER JOIN。特别讨论了MySQL 8.0中的JOIN,特别是STRAIGHT_JOIN的用法,强调了它指定查询中表格读取顺序的特性,并分析了不同JOIN类型对查询性能的影响。" 114726020,10545041,Appium环境配置与Java版本要求详解,"['移动开发', 'Appium', '测试工具', 'Android开发', 'Java开发']
摘要由CSDN通过智能技术生成

SQL JOIN & MySQL 8.0 JOIN

  • 1.环境信息:
    MySQL:8.0.16
    MySQL Workbench:8.0

  • 2.数据库信息:
    学生表:t_student
    成绩表:t_score
    关系图:两表通过t_studentidt_scorestudent_id进行关联
    在这里插入图片描述

t_student表数据:
在这里插入图片描述

t_score表数据:
在这里插入图片描述

1.标准SQL JOIN

各种Join图示:
在这里插入图片描述

1.1 JOIN类型

  • 1.(INNER) JOIN: 返回两个表中具有匹配值的记录(两表交集)
  • 2.CROSS JOIN: 返回两表笛卡尔积(第一个表中的每一行与第二个表中的每一行组合在一起的行)(两表交集)
  • 3.LEFT (OUTER) JOIN: 返回左表中的所有记录,以及右表中的匹配记录(符合某条件的并集)
  • 4.RIGHT (OUTER) JOIN: 返回右表中的所有记录,以及左表中匹配的记录(符合某条件的并集)
  • 5.FULL (OUTER) JOIN: 当左表或右表中匹配时返回所有记录(两表并集)

左表右表有点晕,可以理解为第一个表(左表),第二个表(右表),OUTER在左连接和右连接中经常省略:

select * from t_student(第一个表) a left (省略outer) join t_score(第二个表) b on a.id = b.student_id; 

1.2 SQL JOIN 写法

-- inner连接 一取两表交集
select * from t_student a inner join t_score b on a.id = b.student_id;
-- cross连接 一取两表笛卡尔积
select * from t_student a  cross join t_score b ;
-- 左连接 一第一张表为准进行关联,第二张表显示为NULL
select * from t_student a left join t_score b on a.id = b.student_id;
-- 左连接 一第二张表为准进行关联,第一张表显示为NULL
select * from t_
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值