目录
第1关:内连接查询
任务描述
本关任务:使用内连接查询数据表中学生姓名和对应的班级。
编程要求
在右侧编辑器补充代码,查询数据表中学生姓名以及对应的班级名称,将其对应的列名分别另命名为studentName
和className
。
我们为你提供了两张表,内容如下:
tb_student
表数据:
id | name | class_id |
---|---|---|
1 | Emma | 2 |
2 | Mary | 4 |
3 | Allen | (null) |
4 | Kevin | 1 |
5 | Rose | 2 |
6 | James | 1 |
tb_class
表数据:
id | name |
---|---|
1 | 软件1631 |
2 | 软件1632 |
3 | 测试1631 |
4 | 测试1632 |
USE School;
########## 查询数据表中学生姓名和对应的班级 ##########
#请在此处添加实现代码
########## Begin ##########
SELECT tb_student.name as studentName,tb_class.name as className from tb_class join tb_student on tb_student.class_id=tb_class.id;
########## End ##########
第2关:外连接查询
任务描述
本关任务:使用外连接查询数据表中所有班级和对应班级里学生的姓名。
编程要求
在右侧编辑器补充代码,分别使用左外连接
和右外连接
查询数据表中所有学生姓名和对应的班级名称,查询结果列分别另命名为studentName
和className
。
我们为你提供了两张表,内容如下:
tb_student
表数据:
id | name | class_id |
---|---|---|
1 | Emma | 2 |
2 | Mary | 4 |
3 | Allen | (null) |
4 | Kevin | 1 |
5 | Rose | 2 |
6 | James | 1 |
tb_class
表数据:
id | name |
---|---|
1 | 软件1631 |
2 | 软件1632 |
3 | 测试1631 |
4 | 测试1632 |
USE School;
########## 使用左外连接查询所有学生姓名和对应的班级 ##########
#请在此处添加实现代码
########## Begin ##########
SELECT tb_student.name as studentName,tb_class.name as className from tb_student left join tb_class on tb_student.class_id = tb_class.id;
########## End ##########
########## 使用右外连接查询所有学生姓名和对应的班级 ##########
#请在此处添加实现代码
########## Begin ##########
SELECT tb_student.name as studentName,tb_class.name as className from tb_student right join tb_class on tb_student.class_id = tb_class.id;
########## End ##########
第3关:关键字子查询
任务描述
本关任务:根据要求使用关键字进行查询。
编程要求
我们为你提供了如下数据表:tb_salary
表数据:
id | position | salary |
---|---|---|
1 | Java | 8000 |
2 | Java | 8400 |
3 | Java | 9000 |
4 | Python | 6500 |
5 | Python | 10000 |
根据提供的数据,在右侧编辑器中补充代码:
-
查询薪资表中比
Java
最高工资高的所有员工职位名称和薪资; -
查询薪资表中比
Java
最低工资高的所有员工职位名称和薪资; -
查询薪资表中薪资与职位为
Java
的某个员工相同的职位名称及薪资。
USE Company;
#请在此处添加实现代码
########## Begin ##########
#1.使用 ALL 关键字进行查询
select position,salary
from tb_salary
where salary >ALL
(
SELECT salary
from tb_salary
where position ="java"
);
#2.使用 ANY 关键字进行查询
select position,salary
from tb_salary
where salary> ANY
(
select
min(salary)
from tb_salary
where position="java"
);
#3.使用 IN 关键字进行查询
select position,salary
from tb_salary
where position in("java");
########## End ##########
第4关:分页子查询
任务描述
本关任务:能分页读取表中数据,针对大数据量进行简单优化。
测试说明
我们会根据表中数据对你的结果进行测试:
预期输出:prod_id
6
7
8
9
10
prod_id
11
12
13
14
15
USE Products;
#请在此处添加实现代码
########## Begin ##########
#1.分页查询
SELECT prod_id FROM products ORDER BY prod_id ASC LIMIT 5, 5;
#2.用子查询优化分页查询语句
SELECT prod_id FROM products ORDER BY prod_id LIMIT 10, 5;
########## End ##########