Mysql 查询语句(三)

–范围查询

表示在一个非连续的范围内——in(1, 3, 8)

表示在不非连续的范围内——not in(1, 3, 8)

--查询年龄为18、34的姓名     
select name,age from students where age = 18 or age = 34;
--需求:此时我们还想加一个年龄为12岁的,按照上面的语句,我们可以在后面加上or age = 12 
select name,age from students where age = 18 or age = 34 or age = 12;
--此时若我们想查询的比较多,那么一个一个的加这样肯定比较麻烦,这个时候我们就可以用到范围查询---in
--我们还是用上面的例子:
select name,age from students where age in (12, 18, 34);
--这样我们就可以只在 in 里面添加就行了,将语句简单化!
--同样有 in 也有 not in ,not in 则表示不在这个范围内的数据,我们还是用上面的例子
select name,age from students where age not in (12, 18, 34);

in后的条件拿什么接 mysql mysql的in语句_聚合函数


in后的条件拿什么接 mysql mysql的in语句_最小值_02

表示在一个连续的范围内——between … and …

表示在不在一个连续的范围内——not between … and …

--查询年龄在18岁到34岁之间的信息
select name,age from students where age between 18 and 34; 
--注意:这里既包括18也包括34
--同样,这里也有not between .... and ....
----查询年龄不在18岁到34岁之间的信息
select name,age from students where age not between 18 and 34;
--注意:这里不能把 not between 分开,这里 not between ... and ... 是一个整体,是一种用法,而不是对 between .... and ... 内容进行取反,所以分开时会报错
例:select name,age from students where age not (between 18 and 34);
--但是 not age between 18 and 34 这种用法是对的 这个就是对 age between .... and ... 内容进行取反
例:select name,age from students where not (age between 18 and 34);
-- 这里我们就不是对 between .... and ... 内容进行取反, 而是对 age between .... and ... 内容进行取反,我们将(age between .... and ...)当作哦一个整体,没有使用not between ... and ... 这个用法,只是对age取反。
--这里建议记得 not between ... and ... 这个用法就行,及多了容易混淆。

in后的条件拿什么接 mysql mysql的in语句_保留两位小数_03


in后的条件拿什么接 mysql mysql的in语句_最小值_04

空判断 —— is null

-- is null 判断为空
--查询身高为空的信息
select * from students where height is null;
--is not null 判断不为空
select * from students where height is not null;

in后的条件拿什么接 mysql mysql的in语句_in后的条件拿什么接 mysql_05


这里我们说完了范围查询,接下来我们介绍下聚合函数的问题!

–聚合函数

总数 —— count

--查询男性有多少人,女性有多少人
select * from students where gender = 1;
--注意:这里我们只能把查询出来所有男性,不知道总数。
--使用聚合函数 —— count
select count(*) from students where gender = 1;
--上面可读性较差,我们运用之前的 as 给他起别名
select count(*) as 男性人数 from students where gender = 1;
select count(*) as 女性人数 from students where gender = 2;

in后的条件拿什么接 mysql mysql的in语句_保留两位小数_06

最大值——max
最小值——min

--查询最大年龄
select max(age) from students;
--查询女性的最高身高
 select max(height) from students where gender = 2;
 --我们也可以用 as 起别名增加可读性
-- 这里我们求最小值就和最大值一样,就是将max函数换成min函数就行了,这里就不做演示了!

in后的条件拿什么接 mysql mysql的in语句_in后的条件拿什么接 mysql_07

求和 —— sum
平均值 —— avg

--计算所有人的年龄总和
select sum(age) from students;
--这里我们计算了所有人的年龄总和,那么平均值我们怎么计算呢,我们来看一下!
select sum(age)/count(*) from students;
--但是这里较为繁琐,有没有简单点的方法呢,答案肯定是有呀,这里我么那就需要用到另外一个函数,他就是avg()
select avg(age) from students;

上面我们求了平均值,但是有些时候可能会出现小数点后有好多数字,这里就有和新需求啦,我们想保留几位小数就保留几位数
需求:按照人们意愿保留小数位数

--四舍五入 round(123.23, 1) 保留一位小数
--这里我们 使用round(参数一,参数二)函数,第一个参数就是我们所要求的值,第二个函数就是我们所想保留的小数位数
--计算所有人的平均身高,保留两位小数
select round(avg(height), 2) from students;
--计算男性的平均身高,保留两位小数
select round(avg(height), 2) from students where gender = 1;

in后的条件拿什么接 mysql mysql的in语句_最小值_08


in后的条件拿什么接 mysql mysql的in语句_聚合函数_09


下次我们介绍分组,排序!