2018-09-20数据库学习

2018-10-10  本文已影响0人  孔雀鱼_686b

数据库模糊查询学习

1. 模糊查询(like)值用于字符串

字符串包括:varchar、char


image.png

2.对于模糊查询就需要用到通配符

通配符包括:%(百分号)—代表任意多个字符
_(英文的下滑线)—代表任意一个字符


图文介绍

3.实例:

3.1 学生姓名以吴开头
SELECT * FROM t_user_customer WHERE customer_name LIKE '吴%';
3.2 姓名是两个字符的学生
SELECT * FROM t_user_customer WHERE customer_name LIKE '_';
3.3学生姓名包含 李
SELECT * FROM t_user_customer WHERE customer_name LIKE '%李%';
3.4 姓名最后一位 是民的学生
SELECT * FROM t_user_customer WHERE customer_name LIKE '%民';
3.5 姓名是 马东什么
SELECT * FROM t_user_customer WHERE customer_name LIKE '马冬
';
3.6 精确查询 学生姓名为 马冬梅的学生
SELECT * FROM t_user_customer WHERE customer__name = '马冬梅';

3.7. 学生姓名不等于 张子栋 只显示学生 编号 姓名
SELECT customer_name,customer_id FROM t_user_customer WHERE customer_name <> '张子栋 ';
3.8. 学生省份为重庆的 只显示 学生编号 姓名 省份
SELECT customer_name,customer_id, province FROM t_user_customer WHERE province = '重庆';

4.IN (用于多个过滤条件且条件没有并列关系)

image.png

5.实例

image.png
5.1 查询学生年龄 是 23 30
SELECT * FROM t_user_customer WHERE age IN (23,30);
5.2 查询学生省份 是 安徽 重庆
SELECT * FROM t_user_customer WHERE province IN ('安徽','重庆'); image.png

6.组合型的实例

6.1 查询年龄为23省份是重庆的或者年龄是29的省份是安徽的所有同学信息
SELECT * FROM t_user_customer WHERE (age,province) IN ((23,'重庆'),(29,'安徽'));
SELECT * FROM t_user_customer WHERE (age,province) IN ((23,''));
6.2 查询年龄23的重庆的之外所有学生信息;
SELECT * FROM t_user_customer WHERE (age ,province) NOT IN ((23,'重庆'));
6.3 查询年龄不为23且省份不是重庆或者年龄不为29且省份不是安徽的所有学生信息;
SELECT * FROM t_user_customer WHERE (age ,province) NOT IN ((23,'重庆'),(29,'安徽'));

7orderby (排序)- 升序(asc)-降序(desc)

8.limit :

7.distinct去重

image.png

8.group by 分组

聚合函数: 统计(count)、求和(sum)、平均值(avg)、最大(max)最小(min)
8.1查询出年龄大于19岁的所有学生并以序号进行升序排序;
SELECT * FROM t_user_customer WHERE age >19 ORDER BY customer_id ASC;
8.2 查询出年龄大于19岁的所有学生并以序号进行降序排序;
SELECT * FROM t_user_customer WHERE age >19 ORDER BY customer_id DESC;

9.having 对聚合函数过滤只能用having

image.png
9.1 统计出每门课的平均成绩
SELECT cno ,AVG (degree)FROM scores GROUP BY cno ;
9.2统计出每门课的最大成绩
SELECT cno ,MAX(degree) FROM scores GROUP BY cno ;
-- 40统计出每门课程的总人数
SELECT cno ,COUNT(sno)FROM scores GROUP BY cno;

-- 41统计出选修人数少于2人的课程
SELECT cno,COUNT(cno) FROM scores GROUP BY cno HAVING COUNT(cno) < 2;

-- 42.统计出成绩不及格的学生
SELECT sno ,MIN(degree) FROM scoresGROUP BY sno HAVING MIN(degree) < 60;

-- 43 统计出全部成绩都不及格的学生
SELECT sno ,MAX(degree) FROM scoresGROUP BY sno HAVING MAX(degree) < 60;

9.20数据库基础.jpg

-- 查询出年龄最大的男同学
SELECT * FROM t_user_customer WHERE s

上一篇下一篇

猜你喜欢

热点阅读