多表关系
各个表结构之间的关系:
一对多 (多对一) 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;


最低0.47元/天 解锁文章
423

被折叠的 条评论
为什么被折叠?



