• 04.排序与分页


    排序

    如果没有指定排序,顺序按照添加顺序显示

    # 不指定升序降序, 默认升序
    # 升序ASC, 降序DESC
    
    # 排序
    # 按照员工工资升序排列
    SELECT employee_id,salary FROM employees ORDER BY salary ASC;
    

    image-20220310010807841

    使用列名的别名进行排序

    # 按照员工年工资排序
    SELECT employee_id,salary * 12 annual_sal FROM employees ORDER BY annual_sal ASC;
    # 列名的别名不能在where中使用
    # 错误例子
    SELECT employee_id,salary * 12 annual_sal FROM employees WHERE annual_sal>50000;
    > 1054 - Unknown column 'annual_sal' in 'where clause'
    > 时间: 0.001s
    

    image-20220310011116360

    如果我们要通过几个参数来进行排序就需要进行多级排序

    # 基本语句
    # 按照列名1的升序、列名2的降序排列
    # 这里的排序优先级是先按照列名1排序,只有列名1相同才回进行列名2的排序
    order by 列名1 ASC, 列名2 DESC;
    # 按照员工工资和id排序
    SELECT employee_id,salary * 12 annual_sal FROM employees ORDER BY annual_sal ASC, employee_id DESC;
    

    image-20220310011643737

    分页

    通过LIMIT显示指定位置的内容来实现分页

    # LIMIT 起始位置,显示个数;
    # 这里的起始位置是从0开始的,相当于数组的0位置,所以要显示1-20,起始位置就是0
    # 显示1-20
    SELECT employee_id,first_name FROM employees LIMIT 0,20;
    # 显示20-40
    SELECT employee_id,first_name FROM employees LIMIT 20,20;
    
    # 分页计算 
    # 已知当前页数与显示个数
    LIMIT (当前页数 - 1) * 显示个数,显示个数;
    
    # 8.0 新特性
    LIMIT 显示个数 offset 起始位置;
    # 显示1-20
    SELECT employee_id,first_name FROM employees LIMIT 20 offset 0;
    # 显示20-40
    SELECT employee_id,first_name FROM employees LIMIT 20 offset 20;
    

    注:**顺序 from ..... where ..... order by .... ASC/DESC LIMIT **

    其他数据库的分页功能实现

    • SQLServer、Access

      SELECT TOP 数量 表名.... 
      
    • DB2

      SELECT ...... FETCH first 5 rows only
      
    • oracle

      SELECT rownum ...... where rownum < 10
      
  • 相关阅读:
    Python(九)之网络编程
    Bat命令
    Python(八)之函数
    RedHat下安装Python开发环境
    Redhat6.5安装DB2 Express-C版本
    Linux下字符集的安装
    Linux命令之stty
    AIX查看CPU、内存等信息
    stopManagedWebLogic.sh强制关闭Managed Server
    Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建
  • 原文地址:https://www.cnblogs.com/jiangblog/p/15987839.html
Copyright © 2020-2023  润新知