mysql第五天-子查询、分页查询、联合查询

子查询

子查询介绍

  • 含义:出现在其他语句(增删改查语句)中的select语句,称为子查询或内查询,外部的查询语句,称为主查询或者外查询


    图示
  • 子查询分类(以查询语句为例)


    分类

where后面的子查询

image.png

子查询都是优先于主查询先去执行,因为主查询用到了子查询的结果。

where后面的标量子查询

案例:标量子查询

支持多个标量子查询

where后面的列子查询(又称多行子查询)

image.png

案例:

image.png

where后面的行子查询(了解查询)

image.png

select后面的子查询(只支持标量子查询)

了解即可,可用别的查询方式替换

from后面的子查询使用(表子查询)

image.png

exists后面的子查询使用(又叫相关子查询,用的也不多)

  • 语法:select exists(子查询语句);
  • 结果只有2个:1或者0;
    根据子查询的结果就行判断是1还是0,子查询的结果有值就是1,为空则值为0.


    image.png

    image.png

分页查询

语法
案例1

案例2

联合查询

  • union 联合 合并:将多条查询语句的结果合并成一个结果
  • 语法:
    查询语句1
    union
    查询语句2
    union
    ...
  • 应用场景:
    要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时
  • 特点:★
    1、要求多条查询语句的查询列数是一致的!
    2、要求多条查询语句的查询的每一列的类型和顺序最好一致,查询字段名称不一致的时候,返回的字段名称为前面的一条sql为标准,但内容却是各自查询的东西。
    3、union关键字默认去重,如果使用union all 可以包含重复项
    4、union的子句中,不用写order by,合并后的结果集可以进行order by,子句order by没有意义。

引入的案例:查询部门编号>90或邮箱包含a的员工信息

  • SELECT * FROM employees WHERE email LIKE '%a%' OR department_id>90;
  • SELECT * FROM employees WHERE email LIKE '%a%'
    UNION
    SELECT * FROM employees WHERE department_id>90;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

  • 1、隐式连接 1、笛卡尔乘积笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2...
    AKyS佐毅阅读 2,163评论 0 1
  • 一. Java基础部分.................................................
    wy_sure阅读 4,069评论 0 11
  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 1,822评论 0 6
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,347评论 0 7
  • 今天,吃了早饭妈妈说去超市买东西,我们收拾完就出发了,到了超市人山人海都在买过年的东西,我和妈妈转了不到一圈就买了...
    5e0d7a648cb4阅读 246评论 0 0

友情链接更多精彩内容