带你认识MySQL数据库(三)

DQL-查询数据

简单查询

查询并展示表中所有记录
  select 字段 from 表名;
查询并展示表中符合要求的记录
  select 字段 from 表名 where 条件;

注意:任何select语句,不会真正修改数据的。
带你认识MySQL数据库(三)

查询原理

带你认识MySQL数据库(三)

条件查询

as 别名。 相当于外号。可以为表或者字段加别名
distinct 去掉重复
列名上可以进行临时的 数字类型的四则运算(+ - * /)
带你认识MySQL数据库(三)

带你认识MySQL数据库(三)
带你认识MySQL数据库(三)
带你认识MySQL数据库(三)
带你认识MySQL数据库(三)

排序

查询时,我们通过order by语句,可以将查询出的记录进行排序。
放置在select语句的最后。
格式:
  SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC;
  ASC 升序 (默认)  小到大
  DESC 降序          大到小
带你认识MySQL数据库(三)

聚合函数/分组函数

聚合函数会忽略null空值
  count(字段):统计指定列不为NULL的记录行数;
 sum(字段):计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
 max(字段):计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
 min(字段):计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
 avg(字段):计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
带你认识MySQL数据库(三)
小结:
聚合函数会忽略null值
最大、最小、求和、平均 都是对数字类型进行操作,不建议对字符串进行操作
带你认识MySQL数据库(三)

分组

分组查询是指使用group by字句对查询记录(行)进行分组运算。
格式:
  SELECT 字段1,字段2… FROM 表名 GROUP BY 分组字段;
带你认识MySQL数据库(三)

分组运算-having

对分组后的每一组进行运算。

    SELECT 字段1,字段2… FROM 表名 GROUP BY分组字段 HAVING 分组条件;

分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。
带你认识MySQL数据库(三)

having与where的区别:
having是在分组后对数据进行过滤.
  where是在分组前对数据进行过滤
having后面可以使用分组函数(统计函数)
  where后面不可以使用分组函数。

having中进行任何运算,select中展示该字段
where中进行任何运算,select中无需展示该字段