oracle查询取消默认排序,oracle 无order by , 默认排序问题 以及oracle的问题

Oracle会根据具体的数据块的存储返回记录.

oracle数据库是没有默认排序的

要排序必须加上order  by

因为oracle是按块进行读取数据的

如果数据按顺序存储,则可能使读取出来的数据是按顺序的,给用户误解为默认排序

oracle没有进行任何排序操作,rowid表示的是数据存放的数据块内部地址,如果没有要求排序,oracle会顺序的从数据块中读取符合条件的数据返回到客户端,不过看起来好像是按照rowid排序似的

如果数据量足够大,即使相同的语句,都有可能不同的结果。

一般而言

表是堆表

所以是无序的

他是按照也即物理存放顺序来读取的

rowid 是自动随行生成的

另:

oracle 的rowid是啥意思

---------------------------------------------------------------

rowid是数据库的一个伪列,建立表的时候数据库会自动为每个表建立ROWID列

用来唯一标识一行记录。

rowid是存储每条记录的实际物理地址,对记录的访问是基于ROWID。

---------------------------------------------------------------

每条记录的物理地址,

对数据库中记录行的作快检索方式就是使用rowid来进行查找。

---------------------------------------------------------------

唯一标识一行记录

select rowid,* from 表名

试一下,你就明白了

---------------------------------------------------------------

rowid就象是邮递员送信时要找的信封上的家庭地址一样,每个rowid都不会重复,oracle查找通过它可以更快地查找到数据.

---------------------------------------------------------------

rowid是一个伪列,对应 块号,行号,行的序号..

---------------------------------------------------------------

个人不是dba。上的文章是转载的,其他的东西请知道的补充下,对这一块有点迷惑。

关于order by的文章

http://blog.sina.com.cn/s/blog_6ff05a2c0100mlco.html

关于有null的排序

http://blog.csdn.net/wh62592855/article/details/4813404

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值