基础查询:
查询基本语法:
select
字段列表
where (条件查询)
条件列表
GROUP BY (分组查询)
分组字段
HAVING
分组后条件
ORDER BY (排序查询)
排序字段
LIMIT (分页查询)
分页限定
单表查询(基础查询):
查询字段SELECT `PASSWORD` from tb_user;查询所有数据select * from tb_user;去除重复SELECT DISTINCT username FROM tb_user;起别名SELECT DISTINCT username AS '姓名' FROM tb_user;
条件查询
基础语法是:select 字段列表 from 表名 where 条件列表

查询入学日期在1998-9-1 到 1999-9-1之间的学生信息
SELECT * from stu ;
SELECT * FROM stu WHERE hire_date BETWEEN ‘1998-09-01’ AND ‘1999-09-01’;
查询英语成绩为null的学员信息
查询null 值 必须使用 is 或者 is not 来比较
SELECT * FROM stu WHERE english is null;
模糊查询:Like占位符
模糊查询_匹配单个任意字符 ,%匹配多个任意字符
查询姓马的学员信息
SELECT from stu WHERE NAME LIKE ‘马%’;
查询第二个字是花的学员信息
SELECT FROM stu WHERE NAME LIKE ‘_花%’;
查询名字中包含德的学员信息
SELECT * FROM stu WHERE NAME LIKE ‘%德%’;
排序查询: ORDER BY
语法:SELECT 字段列表 from 表名 ORDER BY 排序字段1【排序方式1】,
排序方式:
ASC : 升序
DESC: 降序
注意:如果多个排序条件 当前边的条件值一样时 才会根据第二条件进行排序
查询学生信息 按照年龄升序排序
SELECT FROM stu ORDER BY age ASC;
查询学生信息 按照数学成绩 降序排序
SELECT FROM stu ORDER BY math DESC;
查询学生信息 按照数学成绩降序排序 如果 数学成绩一样再按照英语成绩升序排序
SELECT * FROM stu ORDER BY math DESC, english ASC;
聚合函数 和分组查询:GROUP BY
聚合函数:统计的操作 概念 将一列数据作为一个整体 进行纵向计算
聚合函数语法:
SELECT 聚合函数(字段名) from 表;
注意:null值不参与 所有聚合函数运算
SELECT * FROM stu;
查询班级一共有多少个学生
SELECT COUNT(id) AS ‘一共有多少个学生’ FROM stu;
查询数学成绩最高分
SELECT MAX(math) AS’数学成绩最高分’ FROM stu;
查询数学成绩最低分
SELECT MIN(math) AS’数学成绩最低分’ FROM stu;
查询数学成绩的总分
SELECT sum(math) AS’总分’ FROM stu;
查询数学成绩平均分
SELECT AVG(math) AS’平均分’ from stu;
查询英语成绩最低分
SELECT MIN(math) AS ‘英语平均分’ FROM stu;
分组查询:
语法:SELECT 字段列表 From 表名[where 分组前条件限定] GROUP BY 分组字段名【HAVING 分组后条件过滤】
注意哦:分组之后 查询字段为聚合函数和分组字段 查询其他字段无任何意义
where和having区别:
- 执行时机不一样:where是分组之前进行限定,不满足where条件 则不参与分组 而having 是分组之后对结果进行过滤
- 可判断的条件不一样:where不能对聚合函数进行判断,having可以
执行顺序 where>聚合函数>having
查询男同学和女同学的数学平均分
SELECT sex,AVG(math) FROM stu GROUP BY sex;
查询男同学和女同学各自的数学平均分,以及各自人数 女3 男5
SELECT AVG(math),sex,COUNT(sex) FROM stu GROUP BY sex;
查询男同学和女同学各自的数学平均分,以及各自人数要求分数低于七十分的不参与分组
SELECT sex,AVG(math),COUNT(sex) FROM stu WHERE math>70 GROUP BY sex;
查询男同学和女同学各自的数学平均分,以及各自人数
要求分数低于70的不参与分组 分组之后人数大于二
SELECT sex,AVG(math),COUNT(sex) FROM stu WHERE math>70 GROUP BY sex HAVING COUNT(sex) >2;
分页查询:关键字:LIMIT
语法:SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询目数
起始索引:从0开始
计算公式: 起始索引=(当前页码-1)*每天显示的条数
tips:
- 分页查询limit是mysql数据库的方言
每页显示3条数据 查询第一页数据
SELECT FROM stu LIMIT 0,3;
每页显示3条数据 查询第二页数据
SELECT FROM stu LIMIT 3,3;
每页显示三条数据 查询第三页数据
SELECT * FROM stu LIMIT 6,3;
