mysql -- 多表查询

多表关系

各个表结构之间的关系:
一对多 (多对一)  case:部门和员工

多对多   学生和课程  
- 需要创建一张中间表,这个表中至少需要两个外键,分别关联两方主键

一对一   用户 和 用户详细的关系(单表拆分)
实现: 在任意一方加入外键,关联另一方的主键,并且设置外键为唯一(unique)


多表查询概述:从多张表中查询数据

笛卡尔积:在数学中,两个集合A,B的所有组合情况


case:
查看笛卡尔积:select *from emp,dept;  -- 又多又重复

多表查询:select *from emp,dept where emp.dept_id=dept.id;


多表查询分类


连接查询:{

内连接:  相当与A,B交集的部分

外连接:
     左外连接:查询左表所有数据,以及两表交集部分数据
     右外连接:  查询右表所有数据,以及两表交集部分数据

自连接:当前表与自身连接查询,自连接必须使用表别名

}

子查询

连接查询


内连接:    查询两张表之间交集的部分


语法:
隐式内连接:select 字段列表 from 表1,表2where 条件...;

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

case: 
查询每一个员工的姓名和关联的部门名称
1.隐式内连接查询
select emp.name , dept.name from emp,dept where emp.dept_id=dept.id;


2.显式查询:
select e.name,d.name from emp e join dept d on e.dept_id = d.id;
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值