#MYSQL#这是我MyySQL教程的第四篇了,可能对于一些大神来说这些都是小儿科,但是我还是相信这些东西会对一些人有帮助的,本篇主要会介绍上面是子查询以及如何使用它们。大概会从,什么是子查询,利用子查询进行数据筛选,还有就是把子查询作为计算字段使用。

1.什么是子查询以及利用子查询进行数据过滤

在使用子查询之前你要检查一下你的饿MySQL版本了。最少4.1,这个子查询也是在4.1版本之后才引入的功能。SELECT语句是SQL的查询,迄今为止我们看到所以的SELECT语句都是很简单的,即从单个数据库表里面检索。接下来就是要介绍SQL的子查询了,理解这个概念的最好方法就是看下面的应用场景。

在这个SELECT语句中,子查询是从内向外来处理的,首先他先执行括号里面的 SQL语句,然后根据括号里面的SQL返回的数据在执行括号外面的SQL语句,对于IN操作符要求的是使用逗号分隔的形式传递给外部查询的where语句,最后输出结果。

对于有包含子查询的SQL语句他的理解和阅读都是有一定的难度的,特别是到了更加复杂的SQL时,所以在写SQL语句的时候就要注意进行缩进,简化阅读的难度。

在看上面这条嵌套了两个子查询的SQL语句,他的执行顺序还是一样的先执行括号里面的SQL语句,然后一层一层地往外执行,直到最外层。可见在WHERE子句中使用子查询是没有数目限制的,不过在日常开发当中也是不需要这么多层的SQL子查询。还有一个注意的就是每一个子查询都是用IN操作符来使用的,有时候也哭用等于或者不等于来结合使用。

2.子查询作为计算字段使用

子查询的另外一个使用方法就会说来创建计算字段,假如要显示customers表中的每一个客户的订单总数,但是订单与相应的客户ID存储在ordes表中。为了执行这个操作看下面的步骤。

首先从customers中检索错每个客户,然后统计客户的订单数量,

这条sql语句对customers表中的每一个客户进行统计,orders是作为一个计算字段由小括号里面的子查询建立,该子查询每一个客户检索一次。

在使用子查询测试和调试查询有很多的技巧,特别实在这些语句的复杂性不断增加的情况下更是如此,用子查询建立查询的最可靠的方法就是逐渐进行,这与MySQL处理它们的方法非常相同,首先是建立和测试最内层的查询,然后用硬编码来建立外层的数据查询,并且在确认外层没有问题的情况下,然后在嵌入内层的子查询,

这样做虽然有点麻烦,但是节省了以后找不出为什么查询不能正常工作的原因,这个时候你就不知道是外层SQL还是内层SQL,出现问题,并且极大的提高了查询一开始就是正常工作的可能性。

mysql数据库表子查询语句_MySQL使用子查询教程相关推荐

  1. mysql 单表子查询语句_MySQL基本SQL查询语句:多表查询和子查询示例

    一.简单查询:基本语法: 代码如下 SELECT * FROM tb_name; 查询全部 代码如下 SELECT field1,field2 FROM tb_name; 投影 代码如下 SELECT ...

  2. mysql的基本的查询语句_Mysql的基本查询语句

    聚集函数 mysql有5个聚集函数,分别是AVG,MAX,MIN,SUM,COUNT. 分组 分组的使用group by作为关键字,having作为条件关键字. having和where的区别:1.w ...

  3. mysql数据库在哪里写语句_Mysql数据库操作语句

    零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...

  4. mysql联合查询查询语句_mysql 各种联合查询语句

    简单的介绍了各种联合查询语句的用法,有inner join ,join left等多表联合查询,有需要的朋友可以参考一下. INNER JOIN(等值连接) 只返回两个表中联结字段相等的行 LEFT ...

  5. Mysql数据库表复制操作语句

    MySQL复制表结构和内容到另一张表中的SQL语句 1.复制表结构及数据到新表 复制代码代码如下: CREATE TABLE 新表 SELECT * FROM 旧表 2.只复制表结构到新表 复制代码代 ...

  6. mysql的联合查询语句_mysql各种联合查询语句

    简单的介绍了各种联合查询语句的用法,有inner join ,join left等多表联合查询,有需要的朋友可以参考一下. INNER JOIN(等值连接) 只返回两个表中联结字段相等的行 LEFT ...

  7. mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  8. mysql select查询语句_mysql的select查询语句

    1.简单查询 mysql> select * from students; +------------+----------+------+------+ | id | sname | sex ...

  9. mysql中多表联合查询语句_mysql中的多表联合查询语句是什么

    mysql中的多表联合查询语句是:[select 语句1 union [union 选项] select 语句2 union [union 选项] select 语句n].多表联合查询结果是将多个se ...

最新文章

  1. Windows使用免费版Kiwisyslog搭建日志服务器
  2. XCODE 所有DeviceSupport
  3. 微信数据分析包准备(Python)
  4. css中position属性(absolute/relative/static/fixed)
  5. mysql 存guid类型_从C#在MySQL中存储GUID
  6. bzoj5039:[Jsoi2014]序列维护
  7. mysql插入日期 vs oracle插入日期
  8. leetcode509. 斐波那契数
  9. DDD:DomainEvent、ApplicationEvent、Command
  10. 面试必备:synchronized的底层原理?
  11. 蓝宝石显卡bios_这操作竟能让显卡性能暴涨?原来不是黑科技,小白都会
  12. 2019/7/19 Bootstap练习
  13. [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)
  14. Android高级模糊技术[转]
  15. Wagtail 教程 3:引入 Bootstrap 4,Font Awesome,页面布局优化
  16. 测试每秒点击速度的软件,测试点击速度
  17. Java 8 reduce 是什么
  18. 高光谱影像伪彩色显示
  19. 什么品牌的台灯适合学生用?适合学生党用的台灯推荐
  20. Electron桌面应用打包流程详情

热门文章

  1. windows史上最方便解压rar文件的软件WeDo
  2. Linux内存管理:MMU那些事儿
  3. PHP导出成word文档
  4. Java执行系统命令策略
  5. Redis之jedis连接池
  6. this.$modal.confirm 自定义按钮关闭_【勤哲资料】7.6 自定义打印
  7. 自拍会不会被大数据_大数据教你自拍 脸占画面1/3最漂亮
  8. mysql schema 同步_GitHub - naryn/mysql-schema-sync: mysql表结构自动同步工具
  9. (四)将容器部署到Azure上的Kubernetes
  10. 将您的SQL Server工作负载迁移到PostgreSQL –第1部分