MySQL“关于查询“(二)

本文介绍了SQL进阶查询技巧,包括范围查询(如年龄在13-15岁的学生)、限制查询(如前N条记录),以及嵌套查询(如找最高分学生)、分组查询(如男女人数统计)和使用聚合函数。后续将讨论多表查询和其他高级概念。
摘要由CSDN通过智能技术生成

今天我主要讲一些稍微进阶一些的查询(不过还是比较简单)

1.范围查询:

1.between and 关键字
2.语法: select 字段 from 表名 where 字段 between 范围1 and 范围2 ;

# 查询年龄在13岁到15岁的学生信息
select * 
	from students 
	where age
	between 13  and  15;

# 而他等价于:
select * 
	from students 
	where age >=13 
	and age <= 15;

2.限制查询:

1.limit可以限制查询的记录条数
2.语法:select 字段 from 表名 limit n ,m;(n:第n+1行开始,m:几行数据)
3.注意:limit不只是单单的可以限制查询条数,还能够进行分页操作,实现分页查询从而优化SQL的查询速度,后面讲哈。
4.还要注意的是:0表示第一条记录,并不是1

# 查询学生表中前3条记录
select *
	from students 
	limit 3;
# 查询学生表中第3条记录到第5条记录
select *
	from students 
	limit 2,3;

3.嵌套查询:

1.检讨擦寻也就是在查询语句中包含有子查询的语句

# 查询student表中分数为第一的学生信息
select * 
	from students 
	where score = (select max(score)
						from students 
						);
# 方法2:存在性判断
select * 
	from students as s1 
	where not exists(select 'x'
						from studnets as s2
						where s2.score > s1.score);
# 方法3:计数法(不只是单单的可以查找最大,可以查第二大,第三大,等等)
select * 
	from students as s1
	where (select count(sal)
			from students as s2
			where s2.sal > s1.sal)=0;

4.分组查询:

1.group by 关键词,起分组作用
2.having 关键词,作用类似于where 但前者需结合group by 使用,且执行顺序在where后面,前者当中可以使用”聚合函数“,但where中不行

# 查询这个班级男生女生的人数
select count(name)
	from students 
	group by sex ;
# 查询男生中分数最高的人和女生中分数最高的人
select name
	from students 
	group by sex
	having max(score);

5.多表查询(这个知识需要系统的讲,在后面单独来讲这个东西,这里先不弄)

6.看了上面的操作后可能有很多东西不理解,这里给解释一下哈

1.像min(),max()这些是”聚合函数“,除了这些函数要学以外,还有(窗口函数,时间函数,字符串函数,等函数需要我们去学习)
2.像 as 这样的关键词是指,取别名比如:from student as s1 就是指,student这个表的别名是s1,在使用函数是就可以直接使用别名来操作,比如:s1.name
3.exists 也是一种关键词,常用于”存在性判断“

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值