数据库
一、模糊查询
- 只针对字符串类型
- varchar
-
char
image.png
- 模糊查询关键字(like)
- 通配符
- % 代表任意多个字符(0,n)
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%静%';
- _ 代表一个任意字符(1)
-- 16 姓名第二位为 春的学生姓名
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '_春%';
二、非 not
SELECT * FROM `t_user_customer` WHERE customer_name NOT LIKE '%冬%';
三、in
- 同一个字段有多个筛选条件,每个条件都需要用英文的逗号分隔
- 对多个字段的多个筛选条件,每个条件都需要用英文的逗号分隔
- 不能对null进行筛选
-- 21 查询学生id 是77 88 99 111
SELECT * FROM `t_user_customer` WHERE customer_id IN (77,88,99,111);
-- 22 查询学生年龄 是 23 30
SELECT * FROM `t_user_customer` WHERE age IN (23,30);
-- 23 查询学生省份 是 安徽 重庆
SELECT * FROM `t_user_customer` WHERE province IN ('安徽','重庆');
四、排序
- 关键字 order by
- 升序 asc
- 降序 desc
-- 27 查询出所有学生的信息并对年龄字段进行升序排序
SELECT * FROM `t_user_customer` ORDER BY age ASC;
-- 28 查询出所有学生的信息并对年龄字段进行降序排序
SELECT * FROM `t_user_customer` ORDER BY age DESC;
五、limit
- 只能mysql使用
- 查询结果是以0为起始序号
- limit n,m(取需要展现的数据)
- n表示起始位置
- m表示展现m条数据
-- 33查询出年龄大于19岁的所有学生并以序号进行降序排序取前10条记录;
SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY customer_id DESC LIMIT 0,10;
-- 34 查询出所有年龄最大的男同学
SELECT * FROM `t_user_customer` WHERE age = (SELECT age FROM `t_user_customer` WHERE sex = '0' ORDER BY age DESC LIMIT 1);
六、去重
- 关键字 distinct
-- 35 查询出所有学生的年龄并去重
SELECT DISTINCT age FROM`t_user_customer`;
七、分组
- 关键字 group by
- 只能展示分组字段和聚合函数
- 聚合函数
- 统计 count
-- 36统计出男生和女生人数
SELECT sex,COUNT(sex) FROM `t_user_customer` GROUP BY SEX;
- 求和 sum
-- 36 统计出每门课的总成绩
SELECT cno,SUM(degree) FROM `scores` GROUP BY cno;
- 平均 avg
-- 37 统计出每门课的平均成绩
SELECT cno,AVG(degree) FROM `scores` GROUP BY cno;
- 最大 max
-- 38 统计出每门课的最大成绩
SELECT cno,MAX(degree) FROM `scores` GROUP BY cno;
- 最小 min
-- 39 统计出每门课的最小成绩
SELECT cno,MIN(degree) FROM `scores` GROUP BY cno;
- having
- 对聚合函数过滤只能用having
-- 41 统计出选修人数少于两人的课程
SELECT cno,COUNT(cno) FROM `scores` GROUP BY cno HAVING COUNT(cno) <2;
-- 1. 精确查询 学生姓名为 马冬梅的学生
SELECT customer_name FROM `t_user_customer` WHERE customer_name = 马冬梅;
-- 2. 查询学生编号 大于60的
SELECT * FROM `t_user_customer` WHERE customer_id > 60;
-- 3. 查询学生 年龄大于20的
SELECT * FROM `t_user_customer` WHERE age > 20;
-- 4. 查询学生姓名为 钱璟的
SELECT * FROM `t_user_customer` WHERE customer_name = 钱璟;
-- 5. 查询学生性别为女的
SELECT * FROM `t_user_customer` WHERE sex = '1';
-- 6. 查询编号小于 110的学生
SELECT * FROM `t_user_customer` WHERE customer_id < '110';
-- 7. 年龄不等于23 的学生信息
SELECT * FROM `t_user_customer` WHERE age != '23';
-- 8. 学生姓名不等于 张子栋 只显示学生 编号 姓名
SELECT customer_id,customer_name FROM `t_user_customer` WHERE customer_name <> '张子栋';
-- 9. 学生省份为重庆的 只显示 学生编号 姓名 省份
SELECT customer_id,customer_name,province FROM `t_user_customer` WHERE province = '重庆';
-- 查询姓名中不包含冬的学生信息
SELECT * FROM `t_user_customer` WHERE customer_name NOT LIKE '%冬%'
-- 10 学生姓名 包含 马
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%马%';
-- 11 学生姓名以吴开头
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '吴%';
-- 12 学生姓名包含 李
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%李%';
-- 13 姓名包含静的学生
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%静%';
-- 14 姓名是两个字符的学生
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '__';
-- 15 姓名最后一位 是民的学生
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%民';
-- 16 姓名第二位为 春的学生姓名
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '_春%';
-- 17 姓名只有三个字符的学生
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '___';
-- 18 姓名是 马什么梅的
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '马_梅';
-- 19 姓名是 马东什么
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '马冬_';
-- 20 姓名是 什么冬梅
SELECT * FROM `t_user_customer` WHERE customer_name LIKE '_冬梅';
-- 查询姓名中不包含冬的学生信息
SELECT * FROM `t_user_customer` WHERE customer_name NOT LIKE '%冬%';
-- 21 查询学生id 是77 88 99 111
SELECT * FROM `t_user_customer` WHERE customer_id IN (77,88,99,111);
-- 22 查询学生年龄 是 23 30
SELECT * FROM `t_user_customer` WHERE age IN (23,30);
-- 23 查询学生省份 是 安徽 重庆
SELECT * FROM `t_user_customer` WHERE province IN ('安徽','重庆');
-- 查询年龄是23省份是重庆或者年龄是29省份是安徽的所有学生信息
SELECT * FROM `t_user_customer` WHERE ( age = 23 AND province = '重庆') OR ( age = 29 AND province = '安徽');
SELECT * FROM `t_user_customer` WHERE (age,province) IN ((23,'重庆'),(29,'安徽'));
-- 25 查询年龄不为23且省份不是重庆的所有学生信息;
SELECT * FROM `t_user_customer` WHERE age <> 23 AND province != '重庆';
-- 26 查询年龄不为23且省份不是重庆或者年龄不为29且省份不是安徽的所有学生信息;
SELECT * FROM `t_user_customer` WHERE (age,province) NOT IN ((23,'重庆'),(29,'安徽'));
-- 28 查询23岁重庆人之外的所有学生
SELECT * FROM `t_user_customer` WHERE (age,province) NOT IN ((23,'重庆'));
-- 27 查询出所有学生的信息并对年龄字段进行升序排序
SELECT * FROM `t_user_customer` ORDER BY age ASC;
-- 28 查询出所有学生的信息并对年龄字段进行降序排序
SELECT * FROM `t_user_customer` ORDER BY age DESC;
-- 29 查询出年龄大于19岁的所有学生并以序号进行升序排序;
SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY age ASC;
-- 30 查询出年龄大于19岁的所有学生并以序号进行降序排序;
SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY age DESC;
-- 31 查询出年龄大于19岁的所有学生并以年龄进行降序排序 如果有年龄相同的,以序号升序排序
SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY age DESC,customer_id ASC;
-- 32 查询出性别为男的所有学生,并按照年龄降序排序,若有年龄相同的则以创建时间进行升序排序
SELECT * FROM `t_user_customer` WHERE sex = '0' ORDER BY age DESC, create_time ASC;
-- 33查询出年龄大于19岁的所有学生并以序号进行降序排序取前10条记录;
SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY customer_id DESC LIMIT 0,10;
-- 34 查询出所有年龄最大的男同学
SELECT * FROM `t_user_customer` WHERE age = (SELECT age FROM `t_user_customer` WHERE sex = '0' ORDER BY age DESC LIMIT 1);
-- 35 查询出所有学生的年龄并去重
SELECT DISTINCT age FROM`t_user_customer`;
-- 36统计出男生和女生人数
SELECT sex,COUNT(sex) FROM `t_user_customer` GROUP BY SEX;
-- 36 统计出每门课的总成绩
SELECT cno,SUM(degree) FROM `scores` GROUP BY cno;
-- 37 统计出每门课的平均成绩
SELECT cno,AVG(degree) FROM `scores` GROUP BY cno;
-- 38 统计出每门课的最大成绩
SELECT cno,MAX(degree) FROM `scores` GROUP BY cno;
-- 39 统计出每门课的最小成绩
SELECT cno,MIN(degree) FROM `scores` GROUP BY cno;
-- 40 统计出每门课程的总人数
SELECT cno,COUNT(sno) FROM `scores` GROUP BY cno;
-- 41 统计出选修人数少于两人的课程
SELECT cno,COUNT(cno) FROM `scores` GROUP BY cno HAVING COUNT(cno) <2;
-- 42 统计出成绩不及格的学生
SELECT sno,MIN(degree) FROM `scores` GROUP BY sno HAVING MIN(degree) <60;
-- 43 统计出全部成绩都不及格的学生c
SELECT sno,MAX(degree) FROM `scores` GROUP BY sno HAVING MAX(degree) <60;
数据库基础.jpg
网友评论