MySQL - 聚合、约束和范式
2018-06-23 本文已影响13人
sunboximeng
主键是表中数据的唯一标识,也叫做索引。
外键用于与另一张表关联,使得表之间可以进行运算,是关系型数据库的本质。
聚合(统计目的)
- 聚合函数
在普通查询的基础上,给列名加上聚合函数。
select 聚合函数(IFNULL(列名,0)) from 表名 where
- 分组聚合
体育成绩,必须分组之后再聚合才有意义。
分组条件和聚合条件是独立的,直接叠加就好。
select 列名,聚合函数(IFNULL(列名,0)) from 表名 GROUP BY 列名
where 筛选参与分组的数据 GROUP BY 列名 Having 对聚合结果的约束
- 分页查询
select * from 表名 limit start, step
五大约束
保证数据的正确性、一致性和完整性。
定义:只有外键定义太长,只能在下面单独写一行。不同约束之间,空格隔开即可。
修改:增删约束都算是修改表,所以用alter table
- primary key:主键约束
modify + 建表语句
drop primary key - foreign key :外键约束
add + drop - UNIQUE:唯一性约束
唯一约束也是索引。
modify + drop index - DEFAULT :默认值约束
default+值 - NOT NULL:非空约束
modify 自动增长也是
三大范式(分解大表的原则):
- 字段原子性
- 非主键字段必须依赖主键。也就是说一个表只描述一件事情。
- 表中的每一列只与主键直接相关而不是间接相关
如果变化可以正交,互不影响,那就必须要分离吧。毕竟冗余就是有变化不同步引起的吧。
数据库设计三大范式