子查询:

  • 子查询指嵌套在查询内部,且必须始终出现在圆括号内
  • 子查询可以包含多个关键字或条件,如DISTINCT、GROUP BY 、ORDER BY、LIMIT、函数等
  • 子查询的外层查询可以是我们所知道的所有的SQL命令的统称。

一下Demo基于此表结构,具体信息就不做展示:

1 CREATE TABLE tdb_goods(
2     goods_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
3     goods_name VARCHAR(150) NOT NULL,
4     goods_cate VARCHAR(40) NOT NULL,
5     brand_name VARCHAR(40) NOT NULL,
6     goods_price DECIMAL(15,3) UNSIGNED NOT NULL DEFAULT 0,
7     is_show BOOLEAN NOT NULL DEFAULT 1,
8     is_saleoff BOOLEAN NOT NULL DEFAULT 0
9 );

View Code

SQL又叫结构化查询语言

下面例子中SELECT * FROM table1称为Outer Query/ Out Statement

SELECT col2 FROM table2 称为 SubQuery

1 SELECT * FROM tdb_goods WHERE brand_name = (SELECT brand_name FROM tdb_goods);

子查询可以返回标量、一行、一列或子查询

子查询产生的情况比较多但总共分为三类

  • 1.使用比较运算符的子查询(=、>、<、>=、<=、!=、<>、<=>)

ROUND(AVG(goods_price),2):求goods_price的平均数,并将其四舍五入保留小数点的两位

1 SELECT goods_id, goods_name, goods_price FROM tdb_goods WHERE goods_price >= (SELECT ROUND(AVG(goods_price),2) FROM tdb_goods);

子查询Demo

ANY、SOME、ALL:ANY和SOME等价相当于任何一个即可,ALL则是所有的

Demo:查找出价格大于所有超级本的商品

1 SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price > ALL (SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本');

  • 2.使用NOT IN 与 IN 的子查询

=ANY运算符与IN等效

!=ALL与NOT IN 等效

  • 3.使用EXISTS产生的子查询(如果子查询返回任何行,EXISTS将返回TRUE,否则返回FALSE)此种方法不常用

转载于:https://www.cnblogs.com/gzc911/p/4945658.html

MySQL 6.子查询相关推荐

  1. MySQL 行子查询

    MySQL 行子查询 行子查询是指子查询返回的结果集是一行 N 列,该子查询的结果通常是对表的某行数据进行查询而返回的结果集. 一个行子查询的例子如下: SELECT * FROM table1 WH ...

  2. 浅谈mysql的子查询

    2019独角兽企业重金招聘Python工程师标准>>> mysql的子查询的优化一直不是很友好,一直有受业界批评比较多,也是我在sql优化中遇到过最多的问题之一,mysql在处理子查 ...

  3. 生产库中遇到mysql的子查询

    使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验,在子查询上都认为数据库已经做过优化,能够很好的选择驱动表执行,然后在把该经验移植到mysql数据库上,但是不幸的是,mysql在 ...

  4. mysql怎么子查询_在mysql中如何进行子查询?

    在mysql中,子查询是指将一个查询语句嵌套在另一个查询语句中,可以在SELECT.UPDATE和 DELETE语句中配合WHERE子句进行实现,WHERE子句中语法格式为"WHERE (另 ...

  5. MySQL子查询的优缺点_浅谈mysql的子查询

    浅谈mysql的子查询 mysql的子查询的优化一直不是很友好,一直有受业界批评比较多,也是我在sql优化中遇到过最多的问题之一,你可以点击这里 ,这里来获得一些信息,mysql在处理子查询的时候,会 ...

  6. Mysql之子查询20221016

    Mysql之子查询20221016 子查询案例: 子查询案例: 子查询:谁的工资比Abel的高 SELECT last_name,salary FROM employees WHERE salary ...

  7. mysql表子查询(嵌套查询)

    mysql表子查询(嵌套查询): 1.什么是子查询: 子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询 -- 如何显示与 SMITH 同一部门的所有员工? -- 1.先查出sm ...

  8. mysql嵌套子查询索引_SQL 子查询,索引优化

    场景 索引优化 单列索引 多列索引 索引覆盖 排序 场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表 create table Course( c_id int PRIMARY KE ...

  9. MySQL 嵌套子查询 with子句 from子查询 in子查询 join子查询

    一.适用场景和方法 (1)适用场景 考虑查询过程中是否存在以下情况: 查询某些数据时需要分组才能得到,某些数据不需要分组就能得到或者分组条件不同: 查询某些数据时需要where条件,某些列不需要whe ...

  10. mysql 新建子查询_Mysql创建SQL子查询ALIAS

    通常这些被称为视图.例如: CREATE VIEW vMyLongQuery AS SELECT a, b, c FROM (LONG QUERY) X WHERE ... 然后可以像这样引用: SE ...

最新文章

  1. python 中*args 和 **kwargs的区别
  2. 微生物领域SCIE期刊分析(英美各40本,中国大陆0本)
  3. Linux_SystemLogManager
  4. svn的一些相关资料
  5. 蓝牙杂散超标_杂散发射
  6. 在OR项目中使用火焰图
  7. 非科班通过几个月的培训入行人工智能现实吗?
  8. sublime text实现函数跳转(window环境)
  9. STM32的ADC采集的引脚汇总
  10. android listview 选中状态,Android:在ListView打开时将项目设置为选中状态?
  11. linux shell 变量命令,shell - 如何在Bash中将变量设置为命令的输出?
  12. @程序员,这 TOP 11 物联网云平台速码!
  13. 黄海造船周身流动的信息化血液
  14. LETTers比赛第三场 --1002 Ignatius and the Princess III解题报告
  15. 无线性能优化:FPS 测试
  16. Linux 基础入门---常用命令
  17. Oracle数据库CDB与PDB
  18. 美团校招php笔试题,2018 美团校招笔试题详解
  19. 《带您走进西藏》网课章节测验及答案
  20. 白天黑夜、中午和傍晚的固定配色绘画技巧

热门文章

  1. Make.am中生成.la动态库的同时要链接.a静态库的问题
  2. 怎样用命令查看Mysql数据库大小?
  3. jmeter简单实践(九)
  4. jQuery鼠标悬停文字渐隐渐现动画效果
  5. Hibernate注解方式开发实体类
  6. vim ,vi总是卡死,终于找到原因了。
  7. logrotate日志轮转配置文档
  8. Linux的10个经典彩蛋
  9. 实训作业 4(界面2)
  10. MySQL主从复制 + Mycat实现读写分离