一 . 单表查询
-
基本语法
select
— 字段列表
from
— 表名列表
where
— 条件列表
group by
— 分组字段
having
— 分组之后的条件 -
基础查询
-
条件查询:where后跟条件
-
,< ,<> , = , >= ,<=
- BETWEEN … AND (包含)
- IN (集合)
- LIKE 模糊查询
- IS NULL 为空
-
-
排序查询
- order by 排序字段1,排序方式 ,排序字段2 ,排序方式2 …
- ASC 升序(默认)
- DESC 降序
- 聚合函数:将一列数据作为一个整体,进行纵向的计算
- count :计算个数
- max: 计算最大值
- min : 计算最小值
- sum : 计算和
- avg : 计算平均值
- 注意:聚合函数的计算排除null值
- 分组查询:统计具有相同特征的某一类数据,把这类数据作为一个整体(group by)
- 注意:分组之后查询的字段:要么是分组字段,要么是聚合函数
- where 和having的区别
- where在分组之前进行限定,如果不满足条件,则不参与分组,where后不能跟聚合函数;
- having在分组之后进行限定,如果不满足条件,就不会被查询出来
- 分页查询 limit 索引,显示条数
二. 约束
- 概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性
- 分类
- 主键约束 : primary key 非空且唯一
- auto_increment 自动增长
- 非空约束 : not null ,不能为空
- 唯一约束 : unique 可以有null值,但是只能有一个
- 外键约束 :foreign key
- 级联操作
- 级联更新 :on update cascade
- 级联删除 :on delete cascade
三. 数据表之间的关系
- 多表之间的关系
- 一对一:居民和身份证
- 一对多:在多的一方去建立外键,指向一的一方的主键(部门和员工)
- 多对多:多对多关系须要添加第三张表(学生和课程)
四: 数据库设计的三大范式
- 概念:数据库设计时,需要遵循的一些规范,要遵循后边的范式要求,必须满足前面的范式要求
- 第一范式(1NF):每一列都是不可分割的原子数据项(每一列都是单独的一列)
- 第二范式(2NF): 在INF的基础上消除非主属性对主码的部分函数依赖
- 函数依赖:A–>B 如果通过A属性(属性组)的值,可以确定唯一B属性的值,则成B依赖于A (如 学号–>姓名) (课程,学号–>分数)
- 部分函数依赖:如果A是一个属性组,那么B属性的确定只需要依赖组中的某一些值即可
例如(学号,课程名称)–>姓名
- 第三范式(3NF):在2NF的基础上,消除传递依赖
- 传递函数依赖:A–B,B–>C ,通过A确定B,通过B确定C ,则称C传递依赖于A