`
micheal19840929
  • 浏览: 163162 次
  • 性别: 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处理的类型 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` 的使用方法,并通过具体示例来展示其功能。 首先,我们需要了解如何创建和填充数据表。...

    oralce 中 排序问题

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

    Oracle学习资源与使用

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

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

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

    Oracle学习笔记.pdf

    最后`ORDER BY`对结果进行排序。 2. **Oracle的组成**: Oracle数据库由多个组成部分构成,包括参数文件、口令文件、数据文件、控制文件和重做日志文件。其中,数据文件存储实际的数据,控制文件记录数据库的状态...

    MLDN魔乐科技JAVA培训_Oracle课堂6_排序、单行函数

    在Java中,我们也可以使用`Collections.sort()`方法对集合进行排序,或者在JDBC操作数据库时,在SQL查询中使用`ORDER BY`来排序结果集。同时,Java 8引入了流(Stream)API,它提供了丰富的排序功能,如`sorted()`...

    oracle 讲义

    - `order by`用于排序结果集,`desc`表示降序,`asc`表示升序(默认)。 - 多个字段排序时,可以指定多个列,如`order by deptno asc, ename desc`。 8. **SQL函数**: - `lower()`将字符串转换为小写。 - `...

    Oracle学习资料

    在更复杂的查询中,可以结合使用这些概念,比如在WHERE子句中使用NOT IN或LIKE操作符,同时配合ORDER BY子句进行结果排序,以及使用单行函数进行数据转换和计算。Oracle数据库系统的强大功能和灵活性使其成为企业级...

    Oracle用decode函数或CASE-WHEN实现自定义排序

    对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序。但排序规则是默认的,数字、时间、字符串等都有自己默认的排序规则。有时候需要按自己的想法来排序,而不是按字段默认排序规则...

    Oracle-C#分页控件

    ORDER BY ...)`的窗口函数。这种方法更灵活,可以实现复杂的分组和排序,但对性能的影响可能稍大。 总的来说,Oracle-C#分页控件的实现涉及数据库连接、SQL查询、数据绑定等多个环节。理解并掌握这些知识点,你就...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    1.5.6 ORDERBY子句 13 1.6 INSERT语句 14 1.6.1 单表插入 14 1.6.2 多表插入 15 1.7 UPDATE语句 17 1.8 DELETE语句 20 1.9 MERGE语句 22 1.10 小结 24 第2章 SQL执行 25 2.1 Oracle架构基础 25 2.2 SGA-...

    Oracle学习查询语句

    在查询结果排序方面,`ORDER BY`是关键。默认情况下,`ASC`表示升序,`DESC`表示降序。例如,`SELECT * FROM employees ORDER BY salary DESC`将按工资降序排列员工。 接下来,我们讨论一些常用的字符函数。`UPPER...

    Oracle基本查询过滤排序示例解析

    - `ORDER BY`用于对查询结果进行排序,默认升序。如`ORDER BY sal`按薪资升序排列员工信息。 - `DESC`关键字用于降序排序,如`ORDER BY sal DESC`或使用`A`命令追加`DESC`实现降序。 - 可以使用列的别名或序号...

    Oracle面试复习(二)

    - 掌握SELECT语句,包括基本查询、分组(GROUP BY)、排序(ORDER BY)、聚合函数(COUNT, SUM, AVG, MAX, MIN)等。 - 理解JOIN操作,如INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN以及自连接。 2. **Oracle...

Global site tag (gtag.js) - Google Analytics