• Mysql--子查询、分页查询、联合查询


    一、 子查询的定义
    出现在其他语句中的select语句,称为子查询或者内查询,外部的查询语句称为主查询或者外查询,子查询可以包含普通select可以包含的任何语句。
    外部查询:select、insert、update、delete、set等,主要就是在select的应用。
    二、 子查询的分类
    1.按照子查询出现的位置
    ①select后面:仅仅支持标量子查询
    ②from后面:支持表子查询
    ③where或having后面:支持标量子查询、列子查询、行子查询
    ④exist后:表子查询
    2.结果集的行列数
    ①标量子查询:结果集一行一列
    ②列子查询:结果一列多行
    ③行子查询:一行多列
    ④表子查询:多行多列
    3.子查询的特点
    ①子查放在小括号内
    ②子查询一般放在条件右侧
    ③标量子查询,一般搭配着单行操作符使用[> < >= <= = <>]
    ④列子查询,一般搭配着多行操作符使用[in、any/some、all]
    ⑤子查询的执行优先于主查询执行,主查询的条件用到了子查询的结果
    3.select后面,仅仅支持标量子查询

    4.from后面:支持表子查询
    其查询结果可以比作一张表,必须给表起别名

    5.where或having后面
    ①支持标量子查询、行子查询、列子查询
    ②in、any、all的理解
    in:等于列表中的任意一个,如:a [10,30,60,80,100],a等于5个数中的任意一个,等价于=any
    not in:列表中的任意一个都不等于,如a[10,20,30,40,50] a 不等于其中任何一个,等价于<>all
    any/some:和子查询返回的某一个值进行比较,<any表示小于任意一个,等价于<max(字段名)
    all:和子查询的所有值进行比较,<all表示小于所有的,等价于<min(字段名)
    ③标量子查询

    ④列子查询(一行多列)

    ⑤行子查询(一行多列)

    6.exists后面
    语法:exists(完整的查询语句),结果为0或者1

    三、 分页查询
    由于数据量较大,一页显示不完整,需要分页查询。
    1.基本语法:
    Select 查询列表 from 表1
    [连接类型 join 表2
    on 连接条件
    where 筛选条件
    group by 分组字段
    having 分组后筛选
    order by 排序字段
    limit 分组条件]
    2.limit特点
    ①放在查询语句的最后面
    ②limit [index,] size index开始的下标,size每页显示的条目数,省略初始位置,默认为0
    ③公式:limit (page-1)*size,size;page是要显示的页数

    四、 联合查询(union)
    union: 将多条查询语句的结果合并成一个结果
    基本语法:查询语句1 union 查询语句2 union 查询语句3...
    基本应用:要查询的结果来自于多个表,且多个表没有直接联系,查询的信息内容一致
    ①多条查询语句字段数目一致
    ②要求每一列的类型和顺序尽量一致
    ③union关键之默认去重,union all可以包含重复项

  • 相关阅读:
    没有纳入spring管理的类如何注入spring管理的对象
    Servlet里面url-pattern的通配符*的使用规则
    【转】request和response的页面跳转传参
    Mybatis-Generator逆向生成Po,Mapper,XMLMAPPER(一)
    Sae上传war包找不到编译文件
    Maven配置中scope说明
    Spring配置中的classpath和classpath*的区别
    国内的ntp服务器
    U盘拷贝文件大小有限制吗?
    Genymotion安装教程
  • 原文地址:https://www.cnblogs.com/rootcz/p/9536598.html
Copyright © 2020-2023  润新知