• 数据库分页


    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)
     
  • 相关阅读:
    java soket 和nio
    面试题中问到 aop di ioc 怎么回答
    细谈hashmap
    java中length和length()还有size()的区别
    MySQL 中实现可重复读(RR)的原理--MVCC
    关于字节流/字符流操作文件的问题
    MySQL 中索引优化(即避免索引失效)
    MySQL 数据库中索引的实现 和 建立索引的原则
    CAS和ABA问题
    Volatile的简单理解
  • 原文地址:https://www.cnblogs.com/QinH/p/4736918.html
Copyright © 2020-2023  润新知