图解MySQL数据库之子查询

 时间:2024-11-13 04:51:48

MySQL查询数据库,当查询条件比较复杂时,常常需要用到子查询。子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。本篇经验将详细介绍MySQL数据库子查询,希望对大家的工作和学习有所帮助!

定义

1、子溽朽孑臾查询(Subquery)是指出现在其他SQL语句内的SELECT子句SELECT * FROM t1 WH呶蓟鹭毵ERE col1 = (SELECT col2 FROM t2);  其中,SELECT * FROM t1,称为外层查询(Outer Query/Outer Statement),SELECT col2 FROM t2,称为子查询(SubQuery)  在使用子查询时,需要注意的是  1、子查询指嵌套在查询内部,且必须始终出现在圆括号内  2、子查询语句中可以包含多个关键字或条件,如DISTINCT、GROUP BY、ORDER BY、LIMIT、函数等  3、子查询的外层查询可以是:SELECT、INSERT、UPDATE、SET或DO  4、子查询可以返回值:标量、一行、一列或者子查询

比较运算符

1、使用比较符是其中一类子查询operand comparison_operator subquery  比较运算符包括=、!=、<>、<=> 、>、<、>=、<=

数据准备

1、建立数据库,数据表,并存入相应记录,如下图所示:

图解MySQL数据库之子查询

2、求所有电脑产品的平均价格,并且保留两位小数,AVG、MAX、MIN、COUNT、SUM为聚合函数,如下图所示:[注意]AVG()是一个用来求平均值的函数

图解MySQL数据库之子查询

4、通过子查询来实现相同的需求,如下图所示:SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price > (SELECT ROUND(AVG(goods_price),2) FROM tdb_goods);

图解MySQL数据库之子查询图解MySQL数据库之子查询

7、系统提示错误,子查询返回的多于一行,因为子查询有3条结果,SELECT无法知道要大于子查询中3条结果中的哪一个。所以,这时就需要用到接下来要介绍的修饰关键字。

修饰关键字

1、修饰关键字包括ANY、some、all三个,如果子查询返回多个值时,可以使用它们,如下图所示:operand comparison_operator ANY(子查询) operand comparison_operator SOME(子查询) operand comparison_operator ALL(子查询)

图解MySQL数据库之子查询图解MySQL数据库之子查询

4、运算符为<或<=,使用ANY或SOME关键字时,表示小于子查询结果中的最大值;使用ALL关键字时,表示小于子查询结果中的最小值,如下图所示:

图解MySQL数据库之子查询

5、运算符为=,使用ANY或SOME关键字时,表示等于子查询结果中的任意值;使用ALL关键字时,则返回空,如下图所示:

图解MySQL数据库之子查询

2、[NOT] EXISTS第三种子查询是由EXISTS 或 NOT EXISTS引发的子查询。如果子查询返回任何行,EXISTS将返回TRUE;否则返回FALSE。

存储查询结果

1、我们可以把查询结果统一存储到一个新的数据表中,而不需要一条一条地录入下面,先创建一个“商品分类”空表,如下图所示:

图解MySQL数据库之子查询

3、将分组结果写入到“商品分类”数据表中,如下图所示:INSERT [INTO] tbl_name [(col_name),...)] SELECT...;

图解MySQL数据库之子查询图解MySQL数据库之子查询
  • 网站推广的主要形式有哪些?
  • 微信小游戏星途wegoing高分方法
  • 印度尼西亚旅行:15个景点推荐
  • 2012年婚纱颜色全攻略,选择适合自己颜色的婚纱
  • 营养美食制作糯米团子
  • 热门搜索
    金孔雀旅游度假村 深圳世界之窗旅游攻略 云南旅游要多少钱 旅游卫视国学堂 黑龙江省旅游地图 踏客旅游网 天津旅游景点介绍 清远旅游公司 骆驼旅游鞋 安康旅游局