13.1 数据分组mysql
若是要将数据分为多个逻辑组怎么办??sql
要用数据分组调试
13.2 建立分组排序
使用group by子句。group by会指示对mysql进行分组,而后对每一个组进行汇集。select
注意:使用group by时,若是在select使用了表达式,则必须在group by 中使用相同的表达式,不可用别名引用
13.2 过滤分组im
因where条件筛选中并无分组概念,须要用having进行分组过滤,having支持全部的where操做符。数据
having与where的区别:where过滤行,having过滤分组查询
13.4 分组和过滤vi
order by 与 group by
通常在使用group by时,也要用order by子句排序,千万不要依赖group by的默认排序。
select子句顺序,
14.1 子查询subquery
子查询的概念: 嵌套在其余查询中的查询。
14.2 利用子查询进行过滤
在select语句中,子查询老是从内向外处理。但包含子查询的SQL语句难以调试和阅读
14.3 做为计算字段使用子查询
相关子查询:涉及到外部查询的子查询,在where条件中应使用彻底限定列名,防止出现错误的查询结果。
常见使用场景:
where子句中的IN操做符,以及填充计算列
15.1 联结(join)表
15.1.1 为何要出现关系表?
场景模拟:将相关源的数据分类保存
主键primary key与外键foreign key的概念:主键为惟一标识
外键是某表中的一列,包含了另外一张表的主键值,定义了两表间的关系
如何维护引用完整性?经过在表定义中指定主键和外键实现。
15.2 建立联结
再次强调彻底限定列名的重要性。