1. 多表
1.1 表关系—外键
情境:员工表(主表)、部门表(从表)
1) 员工表中有一个字段dept_id 与部门表中的主键对应,员工表的这个字段就叫做 外键
2) 拥有外键的员工表 被称为 从表 , 与外键对应的主键所在的表叫做 主表
2. 多表关系设计
2.1 一对多
2.2 多对多
2.3 案例一 省&市表设计
2.4 案例二 演员&角色表设计
2.4.1 架构设计器
点击sql yog上方的的架构设计器,查看两表(多表)之前的关系
多对多关系演示如图:
3. 多表查询
3.1 内连接查询
特点:通过指定的条件去匹配两张表中的数据, 匹配上就显示,匹配不上就不显示
3.1.1 隐式内连接—where
3.1.2 显式内连接—join…on
3.2 外连接查询
3.2.1 左外连接—left (ouer) join
(1)特点:
(2)语法
(3)例子
3.2.2 右外连接—right (outer) join
3.3 连接方式总结

(1)内连接: inner join , 只获取两张表中 交集部分的数据.
(2)左外连接: left join , 以左表为基准 ,查询左表的所有数据, 以及与右表有交集的部分
(3)右外连接: right join , 以右表为基准,查询右表的所有的数据,以及与左表有交集的部分
4. 子查询
4.1 概念
一条selec使用 t 查询语句的结果, 作为另一条 select 语句的一部分
4.2 特点
(1)子查询必须放在小括号中
(2)子查询一般作为父查询的查询条件
4.3 子查询分类
4.3.1 子查询的结果作为查询条件
4.3.2 子查询的结果作为一张表(深入查询)
其实就是当做一张新的表来使用,可以结合内连接、外连接等来实现多表查询。
4.3.3 子查询结果是单列多行
子查询的结果类似一个数组, 父层查询使用 IN 函数 ,包含子查询的结果
4.4 总结
(1)子查询如果查出的是一个字段(单列), 那就在where后面作为条件使用.
(2)子查询如果查询出的是多个字段(多列), 就当做一张表使用(要起别名).
5. 数据库范式
5.1 第一范式 1NF
(1)概念
(2)示例

5.2 第二范式 2NF
5.3 第三范式 3NF
(1)概念
(2)示例






