mysql数据库中子查询的示例分析

30次阅读
没有评论

共计 1741 个字符,预计需要花费 5 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍 mysql 数据库中子查询的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

mysql 子查询是什么?

子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。子查询允许把一个查询嵌套在另一个查询当中。

mysql 数据库子查询语句的特点:任何可使用表达式的地方,都可以使用子查询,只要他返回的是单个值;子查询按返回值的数量,子查询对外部依赖性,比较运算符的不同性进行分类;这在分页查询 sql 语句中经常用到。

一:子查询的特点:

子查询可被嵌套在 select,insert,update,delete 等语句中

大多数情况下子查询充当中间结果集角色

子查询可进行嵌套,且根据内存及表达式复杂程度不同,嵌套限制也不同

任何可使用表达式的地方,都可以使用子查询,只要他返回的是单个值

二:子查询的分类:

按返回值的数量可分为:标量子查询,多值子查询

按子查询对外部依赖性:独立子查询,相关子查询

按比较运算符的不同性:IN,EXISTS,ANY,SOME,ALL 等多种形式

三:子查询的使用:

首先创建两个表(学生表和教师表)

#  创建学生表
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)

将一些值插入到表中

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 及其班级平均分数

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 为及格线)

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 数据库中子查询的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1741字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)