2019.10.18查询语句系列

本文详细介绍了SQL查询语句的基础用法,包括WHERE子句、模糊查询、聚合函数、DISTINCT去除重复数据、GROUP BY分组、HAVING子句、ORDER BY排序和LIMIT分页。通过实例展示了各种查询操作,如按条件筛选、统计分析、数据分组和排序等。

今日内容

1.基本查询语句

算术运算符:+ - * / %
比较运算符:= > < >= <= <> !=
数据库特有的比较:in,not in, is null,is not null,like, between and
逻辑运算符:and or not
like: 支持特殊符号%和_ ; 其中 %表示任意数量的任意字符,_表示任意一位字符。

1.where基本查询

1.查询年龄不等于18岁的所有用户信息
– 2.查询班级为python的所有用户信息
SELECT * FROM user WHERE class=‘python’;
– 3.查询年龄大于16岁的所有用户信息
SELECT * FROM user WHERE age>18;
– 4.查询年龄在18到24岁之间的所有用户信息 包含18和24岁
SELECT * FROM user WHERE age>=18 AND age<=24;
SELECT * FROM user WHERE age BETWEEN 18 and 24;
– 5.查询年龄不在18到24之间的所有用户信息
SELECT * from user WHERE age<18 or age>24;
– 6.查询id值是1,3,4,6的所有用户信息
SELECT * FROM user WHERE id=1 OR id=3 or id=4 or id=6;
SELECT * FROM user WHERE id in (1,3,4,6);
– 7.查询python班和web班级的所有女生信息
SELECT * FROM user WHERE gender=0 and (class=‘python’ OR class=‘web’);

– 模糊查询

– 1.查询名字以‘盖’开头的用户信息
SELECT * FROM user WHERE name LIKE ‘盖%’;
– 2.查询emial中包含g的所有用户信息
SELECT * FROM user WHERE email LIKE ‘%g%’;
– 3.查询姓名是两个字的用户信息
SELECT * FROM user WHERE name LIKE ‘__’;
– 4.查询姓名以大开头并且是两个字的用户信息
SELECT * FROM user WHERE name LIKE ‘大_’;

3.聚合函数:

很少单独去使用,一般配合分组查询去使用 主要做数据的统计
一般在select 后面使用 不能在where后面使用 可以在having后面使用
Max() min() count() avg() sum()

– 1.统计当前表中一共有多少条数据
SELECT count() FROM user;
– 2.查询python班级最大年龄最小年龄以及平均年龄
SELECT max(age),min(age),avg(age) FROM user WHERE class=‘python’;
– 3.统计男生的数量
SELECT count(
) FROM user WHERE gender=‘1’;

4.去除重复的数据:distinct

去重
– 1.查询所有的班级
SELECT DISTINCT class FROM user;
– 2.查询不重复的班级和性别
SELECT DISTINCT class,gender FROM user;

4.分组group by

group by 分组查询
– 1.查询表中有哪些班级
SELECT class FROM user GROUP BY class;
– 2.统计当前表中男生和女生的人数个多少人
SELECT gender,count() FROM user GROUP BY gender;
– 3.统计每个班级的人数
SELECT class,count(
) FROM user GROUP BY class;
– 4.统计每个班,男生和女生个多少人
SELECT class,gender,count(*) FROM user GROUP BY class,gender;

Having 子句查询

1.统计每个班级的人数,并查询出班级人数大于2的班级
SELECT class,count() FROM user GROUP BY class HAVING count()>2;
– 2.查询每个班级男生人数大于2的班级
SELECT class,gender,count() FROM user GROUP BY class,gender HAVING gender=‘1’ and count()>2;
SELECT class,count() FROM user WHERE gender=‘1’ GROUP BY class HAVING count()>2;

6.排序:order by

默认升序排序asc 可以省略不写
Desc降序排序
– 1.查询所有学员信息 并按照年龄进行降序排序
SELECT * FROM user ORDER by age DESC;
– 2.查询班级为python的男生信息 并按照年龄进行降序排序
SELECT * FROM user WHERE class=‘ui’ AND gender=‘1’ ORDER BY age DESC;

7.Limit分页

1.查询前五条数据
SELECT * FROM user LIMIT 10;
– 2.按照3条数据为一页,取第一页数据
SELECT * FROM user LIMIT 0,3;
– 取第二页数据
SELECT * FROM user LIMIT 3,3;
– 取第三页数据
SELECT * FROM user LIMIT 6,3;
– 取第五页数据 (1-1)*3 (2-1)*3 (3-1)*3 (4-1)*3

SELECT * FROM user LIMIT 12,3;

2.查询语句的数据流

练习:
– 1.获取ui班级年龄最大的2个学生
SELECT * FROM user WHERE class=‘ui’ ORDER BY age DESC LIMIT 2;
– 2.获取每个班级的平均年龄,并按照平均年龄进行降序排序
SELECT class,avg(age) FROM user GROUP BY class ORDER BY avg(age) DESC;
– 3.统计每个班级的人数 获取人数最多的两个班级
SELECT class,count() FROM user GROUP BY class ORDER by count() DESC LIMIT 2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值