复习sql: 内连接,左外连接,右外连接,全外连接,交叉连接

数据表准备 学生表 和 课程表


内连接 join 或 innner join

筛选出满足条件的列,where也可以实现这种功能。

sql 复制代码
SELECT * FROM student JOIN course ON student.student_id = course.stu_id

结果

外连接

左外连接 left join 或者 left outer join

以第一个表为基础,第二个表找不到的项就设置为NULL。

sql 复制代码
SELECT * FROM student LEFT JOIN course ON student.student_id = course.stu_id

结果

右外连接 right join 或者 right outer join

以第二个表为基础,第一个表找不到的项就设置为NULL。

sql 复制代码
SELECT * FROM student RIGHT JOIN course ON student.student_id = course.stu_id

结果

全外连接 full join 或者 full outer join(SQL Server有,MYSQL没有全外连接)

左外连接+右外连接的结果。

交叉连接

表1的每一行都与表2的每一行拼接。(笛卡尔积)

sql 复制代码
SELECT * FROM student RIGHT JOIN course ON student.student_id = course.stu_id

参考链接

通俗易懂的join、left join、right join、full join、cross join

相关推荐
睡觉的时候不会困5 小时前
Redis 主从复制详解:原理、配置与主从切换实战
数据库·redis·bootstrap
程序员的世界你不懂6 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
自学也学好编程6 小时前
【数据库】Redis详解:内存数据库与缓存之王
数据库·redis
JAVA不会写7 小时前
在Mybatis plus中如何使用自定义Sql
数据库·sql
IT 小阿姨(数据库)7 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
ChinaRainbowSea8 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程
小马学嵌入式~9 小时前
嵌入式 SQLite 数据库开发笔记
linux·c语言·数据库·笔记·sql·学习·sqlite
Java小白程序员9 小时前
MyBatis基础到高级实践:全方位指南(中)
数据库·mybatis
Monly219 小时前
人大金仓:merge sql error, dbType null, druid-1.2.20
数据库·sql
不宕机的小马达9 小时前
【Mysql|第一篇】Mysql的安装与卸载、Navicat工具的使用
数据库·mysql