MySQL表的内外连接

内连接

内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选,前面所说过的查询都是内连接,也是在开发过程中使用的最多的连接查询。

sql 复制代码
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;

inner join : 将两个表按照指定条件关联匹配,只返回两个表中满足连接条件的行。可简写为join

on : 用来指定join的关联条件为连接两个表的核心规则,也可附加筛选条件

显示SMITH的名字和部门名称

用上一篇的写法为

内连接的写法为

sql 复制代码
select ename,dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno where ename='SMITH';

select ename,dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno and ename='SMITH';

on后的条件形成笛卡尔积,where进一步筛选 这种写法会更清晰

外连接

左外连接

如果联合查询,左侧的表完全显示我们就说是左外连接

语法

sql 复制代码
select 字段名  from 表名1 left join 表名2 on 连接条件

四名同学,两名同学有成绩,left join 会优先考虑完整显示左侧的表,inner

查询所有学生成绩,学生没有成绩也要将学生的个人信息显示出来

右外连接

如果联合查询,右侧的表完全显示我们就说是右外连接

语法

sql 复制代码
select 字段 from 表名1 right join 表名2  on 连接条件;

显示所有成绩即使没有学生与之对应

将两个表互换位置就是左外连接,显示所有学生的成绩...

列出部门名称和这些部门的员工信息,同时列出没有员工的部门

优先显示部门表,根据 deptno来筛选

select * from DEPT left join EMP on EMP.deptno=DEPT.deptno;

相关推荐
Apple_羊先森2 小时前
ORACLE数据库巡检SQL脚本--4、检查锁阻塞
数据库·sql·oracle
2301_822365033 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
luoluoal3 小时前
基于python的人脸识别的酒店客房入侵检测系统(源码+文档)
python·mysql·django·毕业设计·源码
zhangyifang_0093 小时前
ClickHouse查询报错:Code: 62. DB::Exception: Max query size exceeded:
数据库·clickhouse
2301_788756063 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
uoKent3 小时前
MySQL示例数据库
数据库·mysql
麦聪聊数据3 小时前
利用SQL2API模式重构微服务中的数据查询层
数据库·sql·低代码·微服务·架构
x70x803 小时前
# Docker 搭建 MySQL 8 主从复制(踩坑实录 + 完整验证)
mysql·docker·容器
占疏3 小时前
数据库-BRIN 索引
数据库·mysql
u0109272714 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python