本文摘自PHP中文网,作者php是最好的语言,侵删。
mysql子查询是什么?子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。子查询允许把一个查询嵌套在另一个查询当中。
mysql数据库子查询语句的特点:任何可使用表达式的地方,都可以使用子查询,只要他返回的是单个值;子查询按返回值的数量,子查询对外部依赖性,比较运算符的不同性进行分类;这在分页查询sql语句中经常用到。
一:子查询的特点:
子查询可被嵌套在 select,insert,update,delete 等语句中
大多数情况下子查询充当中间结果集角色
子查询可进行嵌套,且根据内存及表达式复杂程度不同,嵌套限制也不同
任何可使用表达式的地方,都可以使用子查询,只要他返回的是单个值
二:子查询的分类:
按返回值的数量可分为:标量子查询,多值子查询
按子查询对外部依赖性:独立子查询,相关子查询
按比较运算符的不同性:IN,EXISTS,ANY,SOME,ALL等多种形式
三:子查询的使用:
首先创建两个表(学生表和教师表)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建学生表
mysql>
create
table
tb_student(
-> stu_ID long,
-> class
varchar
(5),
-> score
int
-> );
Query OK, 0
rows
affected (0.23 sec)
# 创建教师表
mysql>
create
table
tb_teacher(
-> tea_ID long,
-> class
varchar
(5),
-> age
int
-> );
Query OK, 0
rows
affected (0.49 sec)
将一些值插入到表中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
insert
into
tb_student
values
(1,
"A"
, 20);
insert
into
tb_student
values
(2,
"A"
, 30);
insert
into
tb_student
values
(3,
"A"
, 70);
insert
into
tb_student
values
(4,
"B"
, 60);
insert
into
tb_student
values
(5,
"B"
, 70);
insert
into
tb_student
values
(6,
"B"
, 80);
insert
into
tb_teacher
values
(1,
"A"
, 25);
insert
into
tb_teacher
values
(2,
"B"
, 40);
准备工作完毕,接下来进行子查询练习
例一:各班教师ID及其班级平均分数
1
2
3
4
5
6
7
8
9
10
mysql>
select
tea_ID,
-> (
select
avg
(score)
from
tb_student
as
s
where
s.class = t.class
group
by
class)
->
as
Avg
from
tb_teacher
as
t;
+
--------+---------+
| tea_ID |
Avg
|
+
--------+---------+
| 1 | 40.0000 |
| 2 | 70.0000 |
+
--------+---------+
2
rows
in
set
(0.00 sec)
例二:各班级教师年龄及其班级及格人数(60为及格线)
1
2
3
4
5
6
7
8
9
10
mysql>
select
age,
-> (
select
count
(*)
from
tb_student
as
s
where
s.class = t.class && s.score >= 60
group
by
class)
->
as
Count
from
tb_teacher
as
t
order
by
Count
desc
;
+
------+-------+
| age |
Count
|
+
------+-------+
| 40 | 3 |
| 25 | 1 |
+
------+-------+
2
rows
in
set
(0.00 sec)
相关推荐:
mysql 分页查询语句数据库查询_MySQL
Mysql limit子查询语句_MySQL
视频:高级数据查询 - where子句-六天带你玩转MySQL
以上就是mysql子查询是什么?mysql数据库子查询实际使用示例的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《mysql数据库子查询语句》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。