MySQL与Oracle分页区别

  • MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置,记录个数;
  • ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用 ROWNUM<100, 不能用ROWNUM>80
  • 先好好理解rownum的意义,因为ROWNUM是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列(强调:先要有结果集)。简单的说rownum是对符合条件结果的序列号。它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值。

1、Oracle的分页查询

此分页语句,以Oracle中EMP表为例,查询第6条到第10条的数据

select * from      --第三层限制最小值
	( select A.*,ROWNUM rn from    --第二层通过ROWNUM限制最大值
		(select * from emp) A      --第一层查询要分页的所有数据
	where ROWNUM<=10 )
where rn>5;

通用格式:

select * from                     --第三层限制最小值
	( select A.,ROWNUM rn from    --第二层通过ROWNUM限制最大值
		(select * from emp) A     --第一层查询要分页的所有数据
	where ROWNUM<=currentPagesize )
where rn>(currentPage-1)*size;

说明:>= y,<= x表示从第y行(起始行)~x行(结束行)

注意:

  • currentPage表示当前页
  • size表示每页要显示的记录数

2、MySQL的分页查询

假装mysql中有emp表
select * from emp limit 5,10 从第六的开始查十个;因为起始是0;
通用格式:

select * from stu limit m, n;
select * from emp limit (startPage-1)*size, size

1)第一个参数值m表示起始行,第二个参数表示取多少行(页面大小)
2)m= (2-1)*10+1,n=10 ,表示 limit 11,10从11行开始,取10行,即第2页数据。
3)n参数值不能在语句当中写计算表达式,写到语句之前必须计算好值。

3、两个数据库的区别

1)用户体验上:

  • mysql是开源的, oracle不是开源的。
  • MySQL是轻量型数据库,并且免费,没有服务恢复数据。Oracle是重量型数据库,收费,Oracle公司对Oracle数据库有任何服务。

2)数据安全上:

  • Mysql:默认提交sql语句,但如果更新过程中出现db或主机重启的问题,也许会丢失数据。
  • Oracle保证提交的数据均可恢复,因为oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,如果出现数据库或主机异常重启,重启后oracle可以考联机在线日志恢复客户提交的数据。

3)语法上:

  • MySQL默认是自动提交, Oracle默认不自动提交,需要用户手动提交,需要在写commit;指令或者点击commit按钮
  • MySQL是直接在SQL语句中写"select… from …where…limit x,y",有limit就可以实现分页; Oracle则是需要用到伪列
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值