Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL-存储在数据库中的顺序数据_Sql_Oracle_Sorting - Fatal编程技术网

Oracle SQL-存储在数据库中的顺序数据

Oracle SQL-存储在数据库中的顺序数据,sql,oracle,sorting,Sql,Oracle,Sorting,我想知道是否有人知道是否有一种方法可以对已经驻留在数据库中的数据进行排序。也就是说,我想对存在的内容进行排序,但不想在查询中检索它 我这样问是因为我在这个数据库中有一个列表,我想在将来添加到其中,并希望在添加它们后进行订购 所以我的意思是,我不想下载所有的数据;分类;然后把它放回数据库 提前感谢。如果您的表中只有一列,那么这很好,您可以简单地对该表中的数据进行排序 但是,如果表中有多个列,那么它也将依赖于其他列。也就是说,您需要指定要排序的列。另外,如果表中附加了主键,则主键默认为升序,因此不可

我想知道是否有人知道是否有一种方法可以对已经驻留在数据库中的数据进行排序。也就是说,我想对存在的内容进行排序,但不想在查询中检索它

我这样问是因为我在这个数据库中有一个列表,我想在将来添加到其中,并希望在添加它们后进行订购

所以我的意思是,我不想下载所有的数据;分类;然后把它放回数据库


提前感谢。

如果您的表中只有一列,那么这很好,您可以简单地对该表中的数据进行排序

但是,如果表中有多个列,那么它也将依赖于其他列。也就是说,您需要指定要排序的列。另外,如果表中附加了主键,则主键默认为升序,因此不可能。在这种情况下,只能在从表中选择数据时使用它

我的建议是,在从表中选择记录的同时对数据进行排序,因为这样比较容易,风险也较小

编辑:

为了让我的观点更清楚明了,在从表中选择数据时,使用ORDER BY ASC或ORDER BY DESC是实现您想要的目标的最佳方法

如果要创建新表,则可以创建索引组织的表,以确保按索引顺序存储数据

我想知道是否有人知道是否有一种方法可以对已经驻留在数据库中的数据进行排序


普通的关系表称为堆组织表,按任意顺序(即未排序)存储行。如果需要,只在获取行时对行进行排序,而不是在存储行时。在检索行时保证排序的唯一方法是使用ORDERBY子句。

我不确定是否遵循了?你想知道如何对数据进行排序吗?关系数据库中的行未排序。检索时对其进行排序。唯一的方法:对结果进行排序的唯一方法是使用ORDER BY。表中的数据不排序;当你查询它时,你就可以订购它。你们所问的并没有真正意义。当然,数据可以在有利的情况下,使用索引组织的表进行分类存储。您仍然需要在查询中使用ORDER BY子句来确保顺序,因为索引的读取可以快速完成,或者当您运行并行查询时,块不会按顺序读取和处理,但Oracle不需要对数据进行排序。在Oracle 12c中,还有属性聚类,这对混合柱状压缩和区域映射非常有益,但顺序不能像使用索引那样得到保证。您想解决什么问题?您可能会提出另一个问题来描述您实际想要完成的事情,而不是要求提供关系数据库本机不具备的功能。表表示无序的集合。如果有主键附加到表,则不可能,因为默认情况下,主键按升序排列,这是错误的。行不会被排序,并且主键的存在不会改变这一点,尤其是在Oracle@a_horse_with_no_name:-这是主键,即主键默认为升序。不是吗?不,不是。即使主键索引是按升序排列的,也不意味着表也是这样存储的。@a_horse_,the_no_name:-同意。我从来没有打算说这个表会这样存储。我的意思是,如果主键被附加,那么通过排序来修改表将是一件乏味的事情。相反,我的建议是在选择时使用排序。我有误导吗?@Rahul Tripathi:表格中的记录没有排序。你不能把它们分类。使用order BY检索数据时,只能指定排序顺序。只要不指定ORDERBY子句,就不能保证对记录进行排序。所以是的,你的答案是误导性的,因为别无选择。