MYSQL(数据的查询)[标量查询和子查询]
标量子查询
目标:了解标量子查询的定义以及标量子查询的应用。
标量子查询的概念:子查询返回的结果是一行一列,一个值。
· 标量子查询是用来做其他查询的条件的
步骤:
1.确定要从一张表中获取数据(可以是多张)。
2.确定查询条件在当前查询表中无法实现但是可以从其他表中精确获得(只有一个)。
3.使用标量子查询。
演示案列:获取大唐三班的所有学生
我只知道大唐三班和学生表能查出大唐三班的所有学生吗?
显然是不能的
因为学生表中只有班级编号,没有班级名称,所以
我们首先得从班级表中查出大唐三班的班级编号,然后根据班级编号从学生表中查出大唐三班的所有学生。
select * from studentinfo where class_num=(select class_num from
classinfo where class_name=“大唐三班”);
小结:
标量子查询通常用简单比较符号来制作条件的
列子查询
目标:了解列子查询的定义以及列子查询的应用
列子查询的概念:子查询返回的结果是一列多行
·列子查询通常是用来做查询条件的
步骤:
1.确定要从一张表中获取数据(可以是多张)
2.确定查询条件在当前查询表中无法实现但是可以从其他表中精确获得(一个字段多个数据)
3.使用列子查询
示例:
1.获取所有有学生的班级信息。
数据获取目标是班级信息。
#数据获取条件是在学生表中的班级编号,是多个
select * from classinfo where class_num in(select DISTINCT class_num
from studentinfo where class_num is not null)
小结:列子查询通常是作为外部主查询的条件,而且通常是使用in来进行判定。