• 子查询+UNION+LIMIT


            定义:select中嵌套select,嵌套的select语句称为子查询语句。

    一,where中的子查询:

            示例:

            select productName,productCount from bill
        -> where productCount>=(select avg(productCount) from bill);

            后面的子查询语句相当于先把平均值找出来,然后再找到大于平均值的信息。

    二,from中的子查询:

            可以将from后面的子查询的结果当作一张临时表

            select t.*,s.grade from (select avg(sal) as avgsal from emp group by job) as t join s 

            where t.avgsal between s.losal and s.hisal;

            这里的t表的是sal的平均值的搜索结果,因为搜索生成的这张表中avg(sal)这行在后面的where比较中要用到,不能用本来的字段名avg(sal),所以要用别名。

    三,select后的子查询(不常用)

    四,union合并查询结果

            示例:

            > select contact from address where id=1
           -> union
           -> select contact from address where id=3;

            跟使用in或or结果一样,但是union的效率高一些。表连接由于符合笛卡尔积的规律,每连接一个新表,查询数量翻倍,但是union可以减少查询次数。

    Notations:uinion在合并结果的时候要求两个结果列数相同,在mysql中可以列的数据类型不一致,但oracle中要求数据类型相同。

    四,limit

            limit将查询结果部分取出来,通常用于分页查询中。如百度的搜索结果。分页是为了提高用户的体验效果。示例:

         > select contact from address
        -> limit 1,2;

            limit后面跟两个数字前一个是起始下标,后一个是长度。如果只有一个数字就是默认从0开始。

            limit执行顺序在order by的后面。如取出升序排列前四名:

         > select contact from address
        -> order by tel asc
        -> limit 4;

    五,limit进行分页

            分页的每页显示pageSize条数据,每页开始的序号为(分页的页码-1)*pageSize。所以分页的通用公式:

    limit (pageNo-1)*pageSize,pageSize;

  • 相关阅读:
    C语言操作符深度解析(四)
    git常用的命令
    微信小程序开发引入RUM,实现小程序监控
    致敬经典 睛彩再现——AVS产业联盟和中国移动咪咕公司携手推动AVS3视频、音频标准
    写年度总结报告的注意事项
    安装vue vue-server-renderer报错
    【网络安全】XXE漏洞详细解析
    在自己电脑上的idea运行java web项目 如何用外网访问
    Java内存模型基础(JMM)
    【JavaEE】Cookie和Session详解
  • 原文地址:https://blog.csdn.net/small_py_trade/article/details/127042659