头歌实训 MySQL数据库 - 连接查询和子查询基础

目录

第1关:内连接查询

第2关:外连接查询

第3关:关键字子查询

第4关:分页子查询


第1关:内连接查询

任务描述

本关任务:使用内连接查询数据表中学生姓名和对应的班级。

编程要求

在右侧编辑器补充代码,查询数据表中学生姓名以及对应的班级名称,将其对应的列名分别另命名为studentNameclassName

我们为你提供了两张表,内容如下:

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关:外连接查询

任务描述

本关任务:使用外连接查询数据表中所有班级和对应班级里学生的姓名。

编程要求

在右侧编辑器补充代码,分别使用左外连接右外连接查询数据表中所有学生姓名和对应的班级名称,查询结果列分别另命名为studentNameclassName

我们为你提供了两张表,内容如下:

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

根据提供的数据,在右侧编辑器中补充代码:

  1. 查询薪资表中比Java最高工资高的所有员工职位名称和薪资;

  2. 查询薪资表中比Java最低工资高的所有员工职位名称和薪资;

  3. 查询薪资表中薪资与职位为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 ########## 

你可能感兴趣的:(数据库,mysql,sql)