问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MySQL学习-多表查询(内连接,外连接,子查询)

创作时间:
作者:
@小白创作中心

MySQL学习-多表查询(内连接,外连接,子查询)

引用
CSDN
1.
https://blog.csdn.net/qq_52241267/article/details/145544636

多表查询是指从多张表中查询数据。本文将介绍两表之间的关系、笛卡尔积、内连接、外连接和子查询等概念。

一.两表之间的关系以及建立联系的方式:

  1. 一对多:在多的一方添加外键,关联另外一方的主键。
  2. 一对一:任意一方,添加外键,关联另外一方的主键。
  3. 多对多:通过中间表来维护,中间表的两个外键,分别关联另外两张表的主键。

二. 笛卡尔积

笛卡尔积:笛卡尔乘积是指在数学中,两个集合(A集合 和B集合)的所有组合情况

三. 内连接

(1)隐式连接:select 字段列表 from 表1,表2 where 条件;

(2)显式连接:select 字段列表 from 表1 ( inner) join 表2 on 连接条件...;

四.外连接

左外连接:select 字段列表 from 表1 left (outer) join 表2 on 连接条件...;

左外连接:以left join关键字左边的表为主表,查询主表中所有数据,以及和主表匹配的右边表中的数据

select emp.name , dept.name  
from tb_emp AS emp left join tb_dept AS dept  
on emp.dept_id = dept.id;

右外连接:select 字段列表 from 表1 right(outer) join 表2 on 连接条件...;

案例:查询部门表中所有部门的名称, 和对应的员工名称

-- 右外连接

select dept.name , emp.name  
from tb_emp AS emp right join tb_dept AS dept  
on emp.dept_id = dept.id;

五.子查询

介绍:SQL语句中嵌套select

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号