单表查询(六)综合查询

本文提供了一系列SQL查询任务,涵盖了从基本的SELECT语句到使用IN、BETWEENAND、LIKE、ISNULL、DISTINCT、AND、OR等关键字的进阶查询,还包括了排序、分组和LIMIT在限制查询结果数量中的应用。
摘要由CSDN通过智能技术生成

第1关:基本查询语句

任务描述

本关任务:

  • SELECT语句检索数据表中指定字段的数据;

  • SELECT语句检索数据表中所有字段的数据。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

我们为你新建了一个数据表tb_emp,结构如下:

  • 请你查询字段NameSalary的内容;

  • 请你查询整张表的内容。

    USE Company;
    
    #请在此处添加实现代码
    ########## Begin ##########
    
    ########## retrieving the Name and Salary ##########
    select Name,Salary from tb_emp;
    
    ########## retrieving all the table ##########
    select * from tb_emp;
    
    ########## End ##########

     第2关:带 IN 关键字的查询

  • 任务描述

    本关任务:使用IN关键字检索数据表中指定的数据内容。

  • 编程要求

    根据提示,在右侧编辑器Begin-End处补充代码:

    我们为你新建了一个数据表tb_emp,结构如下:

  • 请你查询当Id不等于1时,字段NameSalary的内容;

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:

USE Company;

#请在此处添加实现代码
########## Begin ##########

########## retrieving the Name and Salary with IN statement ##########
select Name,Salary from tb_emp where id <> 1;


########## End ##########

第3关:带 BETWEEN AND 的范围查询

任务描述

本关任务:使用BETWEEN AND关键字检索数据表中指定的数据内容。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

我们为你新建了一个数据表tb_emp,结构如下:

  • 请你查询当字段Salary范围在3000~5000时,字段NameSalary的内容。

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:

USE Company;

#请在此处添加实现代码
########## Begin ##########

########## retrieving the Name and Salary with BETWEEN AND statement ##########

select Name,Salary from tb_emp where Salary BETWEEN 3000 AND 5000;

########## End ##########

第4关:带 LIKE 的字符匹配查询

任务描述

本关任务:使用通配符%检索数据表中指定字段的数据。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码;

我们为你新建了一个数据表tb_emp,结构如下:

  • 请你查询所有Name以字母C为起始的员工的NameSalary的内容;

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:

USE Company;

######### Begin #########
select Name,Salary from tb_emp where name like 'C%';

######### End #########

第5关:查询空值与去除重复结果 

任务描述

本关任务:使用关键字IS NULL检索数据表中指定的字段的空值;使用关键字DISTINCT检索数据表中指定的不重复的内容。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

我们为你新建了一个数据表tb_emp,内容如下:

  • 使用关键字IS NULL返回数据表中字段DeptIdNULL的所有字段的内容,注意,返回的是指定行所有字段的内容;

  • 使用关键字DISTINCT返回数据表中字段Name不重复的内容,注意,只需返回字段Name的内容。

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:


开始你的任务吧,祝你成功!

USE Company;

######### Begin #########
select * from tb_emp where deptid is null;

######### End #########

######### Begin #########
select distinct Name from tb_emp ;

######### End #########

第6关:带 AND 与 OR 的多条件查询 

任务描述

本关任务:使用关键字AND检索数据表中指定的字段的内容;使用关键字IN检索数据表中指定的字段的内容。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

我们为你新建了一个数据表tb_emp,内容如下:

结构如下:

  • 使用关键字AND返回数据表中字段DeptId301并且薪水大于3000的所有字段的内容,其中DeptId的倒数第二个字母为i的大写;

  • 使用关键字IN返回数据表中字段DeptId301303的所有字段的内容。

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:


开始你的任务吧,祝你成功!

USE Company;

######### Begin #########
select * from tb_emp where deptid = 301 and salary > 3000;

######### End #########

######### Begin #########
select * from tb_emp where deptid in (301,303);

######### End #########

第7关:对查询结果进行排序

任务描述

本关任务:以成绩的降序显示学生成绩表中所有信息。

编程要求

在右侧编辑器Begin-End处补充代码,查询学生成绩表中1班同学的所有信息并以成绩降序的方式显示结果。

我们已经为你提供了学生成绩表: tb_score表数据:

| stu_id | class_id | name | score | | :------------: | :------------: | :------------: | | 1 | 2 | Jack | 81 | | 2 | 1 | David | 74 | | 3 | 1 | Mason | 92 | | 4 | 2 | Ethan | 89 | | 5 | 1 | Gina | 65 |

测试说明

平台会对你编写的代码进行测试:

预期输出:

 
  1. stu_id class_id name score
  2. 3 1 Mason 92
  3. 2 1 David 74
  4. 5 1 Gina 65

开始你的任务吧,祝你成功!

USE School;

#请在此处添加实现代码
########## Begin ##########

########## 查询1班同学的所有信息以成绩降序的方式显示结果 ##########
select * from tb_score where class_id = '1' order by score desc;

########## End ##########

第8关:分组查询 

任务描述

本关任务:对班级表中的班级名称进行分组查询。

编程要求

在右侧编辑器Begin-End处补充代码,对班级表中的班级名称进行分组查询。

我们已经为你提供了班级表信息: tb_class表数据:

stu_idclass_idname
1367Jack
2366David
3366Mason
4367Ethan
5366Gina

测试说明

平台会对你编写的代码进行测试:

预期输出:

 
  1. stu_id class_id name
  2. 2 366 David
  3. 1 367 Jack

开始你的任务吧,祝你成功!

USE School;

#请在此处添加实现代码
########## Begin ##########

########## 对班级名称进行分组查询 ##########
select * from tb_class group by class_id;

########## End ##########

第9关:使用 LIMIT 限制查询结果的数量 

任务描述

本关任务:使用LIMIT关键字查询班级中第2名到第5名的学生信息,并根据学生成绩进行降序排序。

编程要求

在右侧编辑器Begin-End处补充代码,查询班级中第2名到第5名的学生信息,并根据学生成绩进行降序排序。

我们已经为你提供了学生成绩表: tb_score表数据:

idnamescore
1Jack89
2David73
3Mason62
4Ethan93
5Gina76
6Dorris98
7kain86
8Alice91

测试说明

平台会对你编写的代码进行测试:

预期输出:

 
  1. id name score
  2. 4 Ethan 93
  3. 8 Alice 91
  4. 1 Jack 89
  5. 7 kain 86

开始你的任务吧,祝你成功!

USE School;

#请在此处添加实现代码
########## Begin ##########

########## 查询班级中第2名到第5名的学生信息 ##########

select * from 
(select * from tb_score order by score desc limit 1,4) as b;
########## End ##########
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值