• 数据库分页


    Mysql分页采用 limit 关键字

    1. select * from t_user limit 5, 10; #返回第6-15行数据
    2. select * from t_user limit 5;      #返回前5行
    3. select * from t_user limit 0, 5;  #返回前5行

    Oracle分页

     采用 rownum 关键字(三层嵌套)  

    /*
    SELECT * FROM( SELECT A.*,ROWNUM num FROM (SELECT * FROM t_order)A WHERE ROWNUM<=15) WHERE num>=5;--返回第5-15行数据
    */

    /*

    * firstIndex:起始索引

    * pageSize:每页显示的数量

    * sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句

    */
    select *

    from(

      select a.*,ROWNUM rn

      from(sql) a 

      where ROWNUM<=(firstIndex+pageSize)

      )

    where rn>firstIndex



     

      采用 row_number 解析函数进行分页(效率更高)

    /*
    SELECT xx.* FROM( SELECT t.*,row_number() over(ORDER BY o_id)AS num FROM t_order t )xx WHERE num BETWEEN 5 AND 15; --返回第5-15行数据 解析函数能用格式 函数() over(pertion by 字段 order by 字段); Pertion 按照某个字段分区 Order 按照勒个字段排序
    */

    /*

    
    

    * firstIndex:起始索引

    
    

    * pageSize:每页显示的数量

    
    

    * orderColumn:排序的字段名

    
    

    * sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句

    
    

    */
    select *

    from(

      select *

      from(

        select t.*,row_number() over(order by orderColumn) as rownumber

        from(sql) t

        ) p

      where p.rownumber>firstIndex

      )

    where rownum<=pageSize

     

    Oracle主键自增

    #序列
    create sequence sq_qinh
    minvalue 1
    maxvalue 99999999999
    start with 1
    increment by 1
    cache 2000;
    
    #触发器
      
    create or replace trigger 触发器名字
    before insert on 表名 
    for each row
    declare
    -- local variables here
    begin
    SELECT sq_1.nextval
    INTO :NEW.列名
    FROM DUAL;
    
    end 触发器名字;


    sql语句

    insert into gd(id) values(sq_qinh.nextval)
     
  • 相关阅读:
    【linux】驱动-13-阻塞与非阻塞
    【linux】驱动-12-并发与竞态
    【linux】驱动-11-gpio子系统
    【linux】驱动-10-pinctrl子系统
    【linux】驱动-9-设备树插件
    手写Java分页模块
    JDBC连接与自定义线程池
    类加载器
    网络编程之TCP
    网络编程之UDP
  • 原文地址:https://www.cnblogs.com/QinH/p/4736918.html
Copyright © 2020-2023  润新知