第一范式

简化来的定义就是字段不可再分,下图就是第一范式的例子。

48Node.js数据库小知识 - 图1

第一范式容易数据冗余,数据重复,改动数据时改动较大。

第二范式

所有的字段都完全依赖于键,如果键是多个字段不能部分依赖与键。

依赖关系

给出键,就能唯一确定字段的值,如给出学号,就能唯一确定姓名, 反之则不行,则称姓名依赖于学号。
48Node.js数据库小知识 - 图2

第三范式

一个表里不能有两层依赖

给出学号,就能确定系名:系名依赖于学号

给出系名,就能确定系主任:系主任依赖于系名

所以,系主任间接依赖于学号

48Node.js数据库小知识 - 图3

高内聚,低耦合

把相关字段的放在一个表,不相关的分开建表

如果2个字段能单独建表,那就单独建表

一对一

案例:一个学生知能加入一个班级

一对多

案例:一个作者可以写多本书

多对多

案例:一个学生神可以加入多个学生组织,每个学生组织可以有多个学生。

JOIN

一图看懂连接表

48Node.js数据库小知识 - 图4

inner join 只显示2边表都有的

  1. select users.name ,orders.amount from users inner join orders on users.id=orders.user_id;

48Node.js数据库小知识 - 图5

left join 左边全部显示,右表只显示有的

  1. select users.name ,orders.amount from users left join orders on users.id=orders.user_id;

48Node.js数据库小知识 - 图6

right join 右边全部显示,左边只显示有的

案例同上。

full outer join 2边都全部显示