关系分为三种:一对一 ,一对多(多对一)和多对多
一对一:一张表的一条记录一定只能与另外一张表的一条记录进行匹配
一对多:一张表的一条记录对应另外一张表的多条记录,但另外一张表的一条记录只能对应第一张表一条记录
多对多:表A中的一条记录能对应表B中多条记录,表B中一条记录能对应表A中多条记录;不符合表设计规范,增加一张新表,专门维护两张表之间的关系;
范式:Normal Format是为了解决一种数据的存储与优化问题,保存数据的存储之后,凡是能通过关系找出来的数据,坚决不再重复存储,终极目标是为了减少数据的冗余
六层范式 1NF,2NF,3NF,.....6NF
1NF:第一范式要求字段的数据具有原子性,不可再分
2NF:第二范式在数据表设计过程中,如果有复合主键,且表中有字段不是由整个主键来确定,而是依赖主键中某个字段,存在字段依赖主键的部分的问题,称之为部分依赖;第二范式就是要解决表设计不允许出现部分依赖
解决方案:取消复合主键,采用逻辑主键
3NF:第三范式指理论上一张表中所有字段应该直接依赖主键,如果一张表中存在一个字段,并不直接依赖主键,而是通过某个非主键字段依赖,最终实现传递依赖,称之为传递依赖。
数据高级操作
主键操作:当主键存在冲突,Duplicate key,可以选择性处理:更新和替换
更新操作:
insert into 表名 [(字段列表:包含主键)] values (值列表) on duplicate key update 字段=新值;
替换操作:
replace into 表名 [(字段列表:包含主键)] values(值列表);