下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

MySQL | 多行子查询的多种格式形式讲解

作者:课课家教育     来源: http://www.kokojia.com点击数:1647发布时间: 2016-07-15 09:54:11

标签: MySQL数据库子查询

  在这篇文章中,我们主要学习MySQL数据库中子查询的应用,自从现在很多MySQL版本提供了子查询功能后,我们使用起来更方便,面对庞大的数据和表格,我们可以根据自身需求选择条件来查询我们所需要的数据,快速便捷。现在我们一起来学习子查询中的多行子查询。

MySQL | 使用子查询功能的五种语法形式_MySQL_数据库_子查询_课课家

  所谓多行子查询,是指执行查询语句获得的结果集中返回了多行数据的子查询。在子查询中可以使用in关键字、exists关键字和比较运算符来连接表。

  1.in关键字

  in关键字用来判断一个表中指定列的值是否包含在已定义的列表中,或在另一个表中。代码格式如下:

      select * from 表名称 where 列名称 in(select * from 表名称);

  在这个语句中,它表示查询语句的where子句是以子查询语句的结果作为其范围的。

     2.比较运算符

  与使用in关键字引入的子查询一样,由比较运算符与一些关键字引入的子查询返回一个值列表。使用比较运算符代码格式如下:

      select * from 表名称 where 列名称 =[some|all|any]select * from 表名称)

  在这个语句,分为两种情况来理解,第一种是不加关键词的时候,在这种情况下,子查询语句返回的只是一个值,然后将一列值与子查询返回的值进行比较;第二种是加上关键词,在子查询语句前面加入any、all、some等关键词,这个时候子查询语句返回的就是一组值。any和some表示返回值中至少有一个值的比较为真,就能够满足搜索条件;而all表示无论子查询返回的每个值的比较是否是真或有无返回值,都满足搜索条件。

  3.exists关键字

  使用exists关键字表示子查询不需要返回多行数据,只需要返回一个真值或假值。它的代码格式如下:

     select *from 表名称 where  existsselect * from…….;

  在这个语句中,它表示当子查询进行操作时,首先是先执行括号中的查询,如果有返回值就执行括号外的select语句,否则不返回任何值。

  4.as关键字

  代码格式如下:

      select....from(select.....)as name where......

  这个语句在平时使用情况是相对比较少,也不好理解。其中它是通过子查询执行的结果来构造一个新的表,需要特别说明,这个新表并不是真实记录下的表,而是一张衍生数据表,是一张虚拟的表。它是用来作为主句的查询的对象,该句法功能非常强大,在一些复杂的查询中会经常用到。

  5.集匹配

      代码格式如下:

      select row(value1,value2......)=[any](select 列名称1,列名称2..);  

  在这个语句中,它表示子查询语句的执行所得到的结果与查询的结果集匹配,在集匹配中,如果能找到匹配就返回真值,否则返回假否值,并且两边的结果集都是一组离散值。我们可以借喻数学知识上的交集合。

  结语:子查询在Mysql数据库管理上使用是相对比较频繁,它能快速搜索到我们需要的数据,应用广泛。在实际应用上我们应该根据实际需求,选择相对的语法使用,在这篇文章中第一种和第二种语法理解容易,快速应用。大家都可以在实践中尝试使用多种方式,感受他们的功能。  

赞(1)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程