mysql和oracle在分页 长字符串上的区别

mysql中有个分页的关键字   limit

select * from table limit 10,5;//mysql里面这样是从10之后检索5条

11 12 13 14 15

分页公式:limit (PageIndex-1)*pageSize,pageSize 页面大小为6 第3页

select * from table  limit 12,6

 oracle没有专门的关键字实现分页  靠 rownum(伪列)标明位置

对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<、<=、!=),并非说用>,& gt;=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来(这段话非原创)

select * from emp where rownum<=2;//查出前两条数据
select * 
from 
       ( select rownum as rn, t.* from emp t where rownum<=2 )
where rn=2 ;//查出第二条数据

select MyGrade.*

  from (select G.*, rownum rn

          from (select g.* from grade g order by chinese) G ) MyGrade

 where MyGrade.rn >= 10;//10条之后的

 

select MyGrade.*

  from (select G.*, rownum rn

          from (select g.* from grade g order by chinese) G

         where rownum <= 10) MyGrade

 where MyGrade.rn >= 6;//6到10条

3、显示第三页的5条记录
当前所在页(currentPage)为3;
每页显示的记录长度(lineSize)为temp;

SELECT *
  FROM (SELECT rownum rb, emp.* from emp where rownum <= 15) temp
 WHERE temp.rb > 10

pageIndex   pageSize

select *

from(select rownum rn,emp.* from emp where rownum<=pageIndex*pageSize) temp

where temp.rn>(pageIndex-1)* pageSize

 

长字符串的处理:

Oracle有它独特的地方,数据类型有一个clob类型,此类型专门用于在insert或者update时候字符串长度大于等于4000个单字节时使用。所以在插入记录前一定要进行非空和长度的判断,不能为空的或者长度超出的都应该提出警告,返回上次操作。MySql就没有这样的数据类型。

上一篇:mysql 秒转日期


下一篇:【oracle】学习笔记 SQL语句