`
micheal19840929
  • 浏览: 166243 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle 无order by , 默认排序问题

阅读更多
Oracle会根据具体的数据块的存储返回记录.
oracle数据库是没有默认排序的 
要排序必须加上order  by 
因为oracle是按块进行读取数据的 
如果数据按顺序存储,则可能使读取出来的数据是按顺序的,给用户误解为默认排序
oracle没有进行任何排序操作,rowid表示的是数据存放的数据块内部地址,如果没有要求排序,oracle会顺序的从数据块中读取符合条件的数据返回到客户端,不过看起来好像是按照rowid排序似的

如果数据量足够大,即使相同的语句,都有可能不同的结果。
一般而言
表是堆表
所以是无序的
他是按照也即物理存放顺序来读取的
rowid 是自动随行生成的
 
另:
oracle 的rowid是啥意思
---------------------------------------------------------------

rowid是数据库的一个伪列,建立表的时候数据库会自动为每个表建立ROWID列
用来唯一标识一行记录。
rowid是存储每条记录的实际物理地址,对记录的访问是基于ROWID。
---------------------------------------------------------------

每条记录的物理地址,
对数据库中记录行的作快检索方式就是使用rowid来进行查找。
---------------------------------------------------------------

唯一标识一行记录
select rowid,* from 表名
试一下,你就明白了
---------------------------------------------------------------

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

rowid是一个伪列,对应 块号,行号,行的序号..
---------------------------------------------------------------
分享到:
评论

相关推荐

    Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出

    然而,Oracle数据库的`ORDER BY`默认并不保证排序的稳定性。这意味着在相同排序键值的情况下,多次执行相同的排序操作可能会得到不同的结果。例如,如果一个表中有两个值相同的记录,`ORDER BY`可能在这两个记录的...

    oracle-sort-order-by.rar_oracle_sort - order

    在Oracle数据库中,排序(Sort)是SQL查询中不可或缺的一部分,`ORDER BY`子句用于决定查询结果的显示顺序。本篇文章将深入探讨Oracle数据库的日文排序机制,这对于在日本进行外包软件开发的工程师来说尤其重要。 ...

    oracle处理的类型 oracle行排序

    当我们在查询语句(如SELECT)中添加ORDER BY,Oracle会根据指定的列或表达式对结果集进行升序(ASC,默认)或降序(DESC)排序。例如: ```sql SELECT * FROM table_name ORDER BY column_name ASC/DESC; ``` ...

    oracle使用order by排序null值如何处理

    大–>小>,null值排在最前面) 指定: 1.Oracle Order by支持的语法 2.指定Nulls first 则表示null值的记录将排在最前(不管是asc 还是desc) 3.指定Nulls last 则表示null值的记录将排在最后(不管是asc 还是desc) ...

    09.Oracle的order by关键字1

    在 Oracle 数据库中,`ORDER BY` 是一个重要的 SQL 关键字,用于对查询结果集进行排序。在本文中,我们将深入理解 `ORDER BY` 的使用方法,并通过具体示例来展示其功能。 首先,我们需要了解如何创建和填充数据表。...

    oracle__汉字排序

    其中`NLS_SORT`的值表示当前数据库的默认排序规则。在上述示例中,其值为`BINARY`,表示使用二进制方式进行排序。 #### 五、总结 通过上述介绍,我们可以看到Oracle数据库提供了多种方式来设置汉字的排序规则,...

    order_by_、group_by_、having的用法

    1. `ORDER BY`:此关键字用于对查询结果进行排序,默认是升序(ASC),也可以指定降序(DESC)。在`ORDER BY`后面,你可以指定一个或多个字段名,以确定根据哪些字段对数据进行排序。例如,`SELECT * FROM table ...

    EasyUI Datagrid 中文排序的问题

    默认情况下,EasyUI Datagrid 支持基本的数据排序功能,但其默认排序逻辑是基于字符编码的,因此无法直接实现中文按拼音顺序的排序。 #### 三、前端解决方案 对于前端来说,可以通过自定义排序函数的方式来实现中文...

    Oracle SQL语句分页问题

    select top @pagesize b.* from (select top @tre_pagesize /*,*/ from /*orderby*/ desc) a, b where b./*=a.*/ order by a./**/ -- 解析 -- 这里使用了两个嵌套的select语句,但`TOP`关键字在Oracle中不支持。 --...

    oralce 中 排序问题

    在本篇中,我们将深入探讨Oracle中的排序问题,包括基本语法、性能优化以及可能遇到的挑战。 首先,我们来看SQL中的排序关键字`ORDER BY`。在Oracle SQL查询中,当你希望对查询结果进行升序(ASC)或降序(DESC)...

    oracle通过sql实现字符串转数字oracle函数

    ORDER BY TO_NUMBER(str_column); ``` 总结来说,Oracle提供了多种方式来实现字符串到数字的转换,包括`TO_NUMBER()`、`TRY_TO_NUMBER()`以及配合正则表达式的使用。理解并熟练运用这些函数可以帮助我们在处理含有...

    Oracle学习资源与使用

    查询可以分为简单查询和复杂查询,例如SELECT、FROM、WHERE和ORDER BY等。 查询结构 查询结构是SQL语句的基本结构,包括SELECT、FROM、WHERE、GROUP BY和HAVING等子句。查询结构可以用于检索数据、分组数据、排序...

    Oracle 中文字段进行排序的sql语句

    例如,`ORDER BY`子句中的`NULL`值处理,Oracle默认会将`NULL`值放在排序序列的最后。如果希望`NULL`值出现在排序的前面,可以使用`COALESCE`函数或`NVL`函数将其转换为一个特定值后再进行排序。 此外,当使用`IN`...

    Oracle数据库性能分析

    - **排序和分组**: 执行ORDER BY和GROUP BY操作。 3. **获取数据(Fetching)**: 最后,执行结果被发送回客户端应用程序或用户界面。 #### 三、识别性能瓶颈的SQL语句 为了有效地进行Oracle数据库性能分析,识别...

    oracle rownum 的使用 和sqlserver有区别的!

    - Oracle 中的 ROWNUM 不受 ORDER BY 影响,即无论是否使用 ORDER BY 子句,ROWNUM 都是从 1 开始计数的。 - 而在 SQL Server 中,如果需要按特定顺序为行分配行号,则必须使用 ORDER BY 与 ROW_NUMBER() 结合的...

    ocp_071 oracle ocp

    在使用UNION时,可以使用ORDER BY子句对最终结果进行排序。但是, ORDER BY只能在UNION查询的最后出现一次,且只对第一个SELECT语句中定义的列名有效。如果希望排序的列名不是第一个SELECT语句中的,需要使用列的...

Global site tag (gtag.js) - Google Analytics