Sql数据查询之精典应用实例:
假如存在如下的数据表,下面我们一起来学习几个比较常用的精典的查询方法。
自动编号 |
学号 |
姓名 |
课程编号 |
课程名称 |
分数 |
1 |
23 |
王三 |
003 |
语文 |
77 |
2 |
24 |
李四 |
004 |
数学 |
88 |
3 |
26 |
张五 |
003 |
语文 |
78 |
4 |
24 |
李四 |
004 |
数学 |
88 |
5 |
26 |
张五 |
006 |
英语 |
100 |
…………. |
①查询英语成绩从第7名到第10名的学生信息
指导思想:选出英语成绩前10名的同学按照降序排列,然后显示前四条记录。
1、显示课程名称是英语的学生记录
Select * from 学生表 where(课程名称='英语');
2、以分数对学生记录进行降序排列,显示前十名
Select top 10 * from 学生表 order by 分数 desc
即
Select top 10 * from(select * from 学生表 where(课程名称='英语')) as 学生表 order by 分数 desc
3、显示英语成绩从 第7名到第10名的学生信息
Select top 4 * from (Select top 10 * from (select * from 学生表 where(课程名称='英语')) as 学生表
order by 分数 desc) as 学生表 order by 自动编号
②查询所有语文和数学的成绩都在前10名的学生信息
1、筛选课程名称为语文的学生信息
Select * from 学生表 where(课程名称='语文')
2、显示语文成绩在前10名的学生信息
Select top 10 * from (select * from 学生表 where(课程名称='语文')) as 学生表
3、显示数学成绩在前10名的学生信息
Select top 10 * from (select * from 学生表 where(课程名称='数学')) as 学生表
4、查询所有语文和数学的成绩都在前10名的学生信息
Select * from (Select top 10 * from (select * from 学生表 where(课程名称='语文')) as 学生表) as a
inner join (Select top 10 * from (select * from 学生表 where(课程名称='数学')) as 学生表) as b
On a.自动编号=b.自动编号