第一范式
简化来的定义就是字段不可再分,下图就是第一范式的例子。
第一范式容易数据冗余,数据重复,改动数据时改动较大。
第二范式
所有的字段都完全依赖于键,如果键是多个字段不能部分依赖与键。
依赖关系
给出键,就能唯一确定字段的值,如给出学号,就能唯一确定姓名, 反之则不行,则称姓名依赖于学号。
第三范式
一个表里不能有两层依赖
给出学号,就能确定系名:系名依赖于学号
给出系名,就能确定系主任:系主任依赖于系名
所以,系主任间接依赖于学号
高内聚,低耦合
把相关字段的放在一个表,不相关的分开建表
如果2个字段能单独建表,那就单独建表
一对一
案例:一个学生知能加入一个班级
一对多
案例:一个作者可以写多本书
多对多
案例:一个学生神可以加入多个学生组织,每个学生组织可以有多个学生。
JOIN
一图看懂连接表
inner join 只显示2边表都有的
select users.name ,orders.amount from users inner join orders on users.id=orders.user_id;
left join 左边全部显示,右表只显示有的
select users.name ,orders.amount from users left join orders on users.id=orders.user_id;
right join 右边全部显示,左边只显示有的
案例同上。
full outer join 2边都全部显示