1、基础查询(自学)
2、条件查询
SELECT * FROM stu;
-- 条件查询
-- 1、查询年龄大于40岁的学员信息
SELECT * FROM stu WHERE age > 40;
-- 2、查询年龄大于等于40岁的学员信息
SELECT * FROM stu WHERE age >= 40;
-- 3、查询年龄大于等于40岁 并且 年龄小于等于 50岁的学员信息
SELECT * FROM stu WHERE age>=40 && age<=50;
SELECT * FROM stu WHERE age>=40 and age<=50;
SELECT * FROM stu WHERE BETWEEN 40 and 50;
-- 4、查询入学日期在'2000-02-05'到'2005-02-05'之间的学员信息
SELECT * FROM stu WHERE hire_date BETWEEN '2000-02-05' AND '2005-02-05';
-- 5、查询年龄等于30岁的学员信息
SELECT * FROM stu WHERE age=30;
-- 6、查询年龄不等于30岁的学员信息
SELECT * FROM stu WHERE age!=30;
SELECT * FROM stu WHERE age<>30;
-- 7、查询年龄为55或者23或者45的学员信息
SELECT * FROM stu WHERE age=55 or age =23 or age=45;
SELECT * FROM stu WHERE age=55 or age in (55,23,45);
-- 8、查询英语成绩为null的学员信息
-- 注意:null值的比较不能使用= !=.需要使用 is isnot
SELECT * FROM stu WHERE english is not NULL;
-- 模糊查询
/*
通配符
_代表任意字符
%代表任意个数字符
*/
-- 1、查询姓'马'的学员信息
SELECT * FROM stu WHERE NAME like '马%';
-- 2、查询第二个字为'云'的学员信息
SELECT * FROM stu WHERE NAME like '_云';
-- 3、查询名字中包含'日'的学员信息
SELECT * FROM stu WHERE NAME like '%日%';
3、排序查询
/*
排序查询:
ASC:升序排序(默认值)
DESC:降序排序
*/
-- 1、查询学生信息,按照年龄升序排序
SELECT * FROM stu ORDER BY english ASC;
-- 2、查询学生信息,按照英语成绩降序排序
SELECT * FROM stu ORDER BY english DESC;
-- 3、查询学生信息,按照英语成绩降序,然后如果英语成绩一样,那么按照数学成绩升序
SELECT * FROM stu ORDER BY english DESC ,english ASC;
4、聚合函数
/*
count:求总数
max:求最大值
min:求最小值
sum:求和
avg:求平均值
*/
-- 1、统计总数
SELECT count(id) from stu;
SELECT count(*) from stu;
-- 2、查询英语成绩的最高分
SELECT MAX(english) from stu;
-- 3、查询英语成绩的最低分
SELECT MIN(english) from stu;
-- 4、查询英语成绩的总分
SELECT SUM(english) from stu;
-- 5、查询英语成绩的平均分
SELECT AVG(english) from stu;
5、分组查询
/*
分组查询
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤]
*/
-- 1、查询男同学和女同学各自的英语平均分
SELECT sex , AVG(english) FROM stu GROUP BY sex;
-- 2、查询男同学和女同学各自的英语平均分以及人数
SELECT sex , AVG(english) , COUNT(*)FROM stu GROUP BY sex;
-- 3、查询男同学和女同学各自的英语平均分以及人数,要求:分数低于60分的不参与分组
SELECT sex , AVG(english) , COUNT(*)FROM stu WHERE english>=60 GROUP BY sex;
-- 4、查询男同学和女同学各自的英语平均分以及人数,要求:分数低于60分的不参与分组,分组之后的人数大于两个
SELECT sex , AVG(english) , COUNT(*)FROM stu WHERE english>=60 GROUP BY sex HAVING COUNT(*) > 2;
5、分页查询
/*
分页查询:
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询条目数
起始索引;从0开始
*/
-- 1、从0开始查询,查询3条数据
SELECT * FROM stu LIMIT 0,3;
-- 2、每页查询3条数据,查询第一页数据
SELECT * FROM stu LIMIT 0,3;
-- 3、每页查询3条数据,查询第二页数据
SELECT * FROM stu LIMIT 3,3;
-- 4、每页查询3条数据,查询第二页数据
SELECT * FROM stu LIMIT 6,3;