MYSQL——DQL查询语言

DQL查询语句 语法

SELECT 要查询的字段列表 from 表名的列表 Where 条件列表 group by 分组字段 having 分组之后的条件限定 order排序 limit 分页限定

基础查询
  • 查询单个字段
SELECT address from student;

  • 查询多个字段
SELECT name,age from student;

去掉重复
SELECT DISTINCT address from student;

注意
去除重复的需要结果集完全相同才能进行去除重复。源数据不同也可以,但要确定查到的结果集相同才可。
计算列
-- 计算列的值 SELECT name,math+english FROM student;

【MYSQL——DQL查询语言】如果有Null参与的运算结果都为Null
SELECT name,math,english,math+IFNULL(english,0) FROM student;

别名操作
as 关键字 将要查询的字段起别名
-- 起别名 SELECT name,math,english,math+IFNULL(english,0) 总分 FROM student;

条件查询
  • where子句后跟条件
运算符
  • 、 <、 <=、 >=、 =、 <>
  • BETWEEN...AND 在一个范围之内
  • IN(集合) 集合表示多个值,使用逗号分隔
  • LIKE '张%' 模糊查询
    • 占位符
      • _:单个占位符
      • %:多个任意字符
  • IS NULL 查询某一列为Null的值,不能写=null
  • and 或 &&
  • or 或者 ||
  • not 或 !
SELECT* FROM student where age >= 20;

排序查询 语法
  • order by 子句
    • order by 排序字段1 排序方式1,排序字段2 排序方式2
  • 排序方式
    • asc 升序 默认的排序方式
    • desc 降序 降序排序
# 升序排序 asc SELECT * FROM extb1 ORDER BY money ASC; # 降序排序 desc SELECT * FROM extb1 ORDER BY money DESC;

  • 多个排序
    如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件
# 多个排序SELECT * FROM extb1 ORDER BY age ASC , money DESC;

聚合函数 将一列数据作为一个整体,进行纵向的计算。
Mysql中的聚合函数
  1. count 计算个数
SELECT COUNT(NAME) FROM extb1;

  1. max 计算最大值
# MAX SELECT MAX(money) from extb1;

  1. min 计算最小值
# MIN SELECT MIN(age) from extb1;

  1. sum 计算和
# SUN SELECT SUM(age) FROM extb1;

  1. avg 计算平均值
# AVG SELECT AVG(money) FROM extb1;

注意
聚合函数的计算排除null值,null值不会参与聚合函数的计算
解决方案:
1.在计算的时候选择不包含非空的列进行计算
  1. 主键
  2. COUNT(*)
    2.使用IFNULL函数
SELECT COUNT(IFNULL(name,0))FROM extb1;

分组查询 分组一般用来进行统计具有相同特征的一类数据
语法
  1. group by 分组字段
# 分组查询 SELECT sex,AVG(age) FROM extb1 GROUP BY extb1.sex; # 分组查询 聚合函数组合使用 SELECT sex,AVG(age),COUNT(*) FROM extb1 GROUP BY extb1.sex; SELECT sex,AVG(age),COUNT(*) FROM extb1 WHERE age >18 GROUP BY extb1.sex HAVING COUNT(*)>3; # 使用别名

注意:
  1. 分组之后查询的字段有:1.分组字段 2 聚合函数,因为分组是统计的同一类的数据,所以在这个条件下查询的是一组数据
  2. 在where和having的区别
    都是在分组中进行条件判断
  3. where在分组之前进行限定,如果不满足条件,则不参与分组 having在分组之后进行限定,如果不满足结果,则不会被查询
  4. where 后不可以跟聚合函数,having可以进行聚合函数的判断
分页查询 语法 LIMIT 开始的索引,要查询的数量
一般公式 开始的索引 = (当前的页面-1) * 每页显示的条数
注意 分页LIMIT是一个MYSQL"方言"

    推荐阅读