一种数据库插入排序方法技术

技术编号:20160345 阅读:35 留言:0更新日期:2019-01-19 00:13
本发明专利技术公开一种数据库插入排序方法,包括以下步骤:步骤S1、根据排序号大小更新排序字段的排序号为从1开始的连续序号;步骤S2、将所有排序号扩大N倍,N为大于或等于2的整数;步骤S3、根据待插入数据和参照数据的唯一键值获取待插入数据和参照数据的排序号,如果需要将待插入数据前移,则将待插入数据的排序号修改为参照数据的排序号减M;如果需要将待插入数据后移,则将待插入数据的排序号修改为所述参照数据的排序号加M;M为大于0且小于N的整数;步骤S4、根据排序号大小重新更新排序字段的排序号为从1开始的连续序号。本发明专利技术只需要知道待插入数据和参照数据的唯一键值,以及移动方向即可完成数据插入排序。

【技术实现步骤摘要】
一种数据库插入排序方法
本专利技术涉及数据库排序
,具体涉及一种数据库插入排序方法。
技术介绍
在数据库中,有些数据表中设计有排序字段,用于标识数据的相对位置。这些数据在业务系统中,需要提供数据插入排序的操作,用于改变数据的相对位置。例如当需要将要移动数据插入到某参考数据后面时,需要将排序号大于或等于参考数据排序号的数据逐个后移一位,再将数据插入参考数据的位置。在这个过程中,将数据逐个后移的操作步骤较多,其步骤数量与要移动的数据量相等。整个过程中,修改数据的操作较多,频繁的数据修改操作,对数据库的性能有很大的影响,并且操作耗时长、性能低。
技术实现思路
本专利技术的目的在于克服上述技术不足,提供一种数据库插入排序方法,解决现有技术中插入排序操作繁琐的技术问题。为达到上述技术目的,本专利技术的技术方案提供一种数据库插入排序方法,包括以下步骤:步骤S1、根据排序号大小更新排序字段的排序号为从1开始的连续序号;步骤S2、将所有所述排序号扩大N倍,N为大于或等于2的整数;步骤S3、根据待插入数据和参照数据的唯一键值获取待插入数据和参照数据的排序号,如果需要将所述待插入数据前移,则将所述待插入数据的排序号修改为所述参照数据的排序号减M;如果需要将所述待插入数据后移,则将所述待插入数据的排序号修改为所述参照数据的排序号加M;M为大于0且小于N的整数;步骤S4、根据排序号大小重新更新所述排序字段的排序号为从1开始的连续序号。与现有技术相比,本专利技术的有益效果包括:本专利技术通过扩大排序号,以便插入操作,只需要知道待插入数据和参照数据的唯一键的值,以及移动方向即可完成插入排序。本专利技术省略了现有技术中数据插入时逐个后移的操作,减少操作步骤,只需要几个固定的步骤即可完成插入排序操作,与要移动的数据量没有关系。减少了操作步骤,提高了插入排序的性能。附图说明图1是本专利技术提供的数据库插入排序方法的流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例1:如图1所示,本专利技术的实施例1提供了一种数据库插入排序方法,包括以下步骤:步骤S1、根据排序号大小更新排序字段的排序号为从1开始的连续序号;步骤S2、将所有所述排序号扩大N倍,N为大于或等于2的整数;步骤S3、根据待插入数据和参照数据的唯一键值获取待插入数据和参照数据的排序号,如果需要将所述待插入数据前移,则将所述待插入数据的排序号修改为所述参照数据的排序号减M;如果需要将所述待插入数据后移,则将所述待插入数据的排序号修改为所述参照数据的排序号加M;M为大于0且小于N的整数;步骤S4、根据排序号大小重新更新所述排序字段的排序号为从1开始的连续序号。现有技术中,数据库的排序字段插入排序的方法通常是,将参照数据及其以下的数据都后移一位,以便空出空位,然后将待插入数据插入空位,最后更新排序号。这种方法需要执行较多数据的后移操作,操作步骤繁琐,数据插入速度慢。在频繁的数据排序插入动作时尤其无法满足需求。因此,本专利技术对现有数据库插入排序方法进行了改进。本专利技术提供的数据库插入排序方法,其基本原理如下:先对排序字段进行初始化排序;然后扩大排序号的倍数,使得相邻的两个数据的排序号之间空出空位,以便后续数据的插入;将待插入数据的排序号修改为参照数据排序号加M或减M,使得待插入数据插入参照数据之上或之下,最后根据排序号的大小重新进行连续序号的排序,实现插入排序操作。排序号在操作过程中会发生改变,不能唯一标识参考数据,需要唯一键值,例如主键值,来对应标识参考数据,以便正确插入待插入数据。例如修改某个人的年龄,只能是根据身份证号修改,此时身份证号即唯一键值,而不能根据年龄修改,因为同龄的人不止一个,不具有唯一性。具体的,下面以具体的排序字段为例进行详细说明。初始化更新排序字段的排序号为连续序号,初始排序字段如下表所示:排序号12345678910数据一二三四五六七八九十插入排序目标为:将排序号为7的数据插入到排序号为3的数据之上。先将所有排序号扩大10倍,排序字段如下表所示:排序号102030405060708090100数据一二三四五六七八九十将排序号70修改为30-1,即29,排序字段如下表所示:排序号102030405060298090100数据一二三四五六七八九十最后按照排序号的大小重新更新排序字段的排序号为连续序号,排序字段如下:排序号12345678910数据一二七三四五六八九十即完成了将排序号为7的数据插入到排序号为3的数据之上的插入排序目标。本专利技术通过对插入排序方法的简单调整,大大提高了插入排序方法的速度,降低了插入排序的复杂度。只需要知道参照数据的排序号,以及移动方向即可完成插入排序,不需要调用其他业务接口,不易出错。优选的,所述N为10。将排序号扩充为原来的10倍,使得相邻数据的排序号之间多出空位,便于待插入数据的插入操作。优选的,所述M取1。将参照数据的排序号自加1或自减1再赋值给待插入数据的排序号,加1或减1运算非常简单,可以进一步缩短排序插入的时间,提高排序插入速度。优选的,所述步骤S1具体为:根据排序号大小更新排序字段的排序号为从1开始的连续序号。从1开始的连续序号便于理解、辨识和运算。优选的,所述步骤S4具体为:重新更新所述排序字段的排序号为从1开始的连续序号。实施例2:本专利技术的实施例2提供了一种计算机存储介质,其上存储有计算机程序,所述计算机存储介质被处理器执行时,实现以上任一实施例所述的数据库插入排序方法。本专利技术提供的计算机存储介质,用于实现上述数据库插入排序方法,因此上述数据库插入排序方法所具备的技术效果,计算机存储介质同样具备,在此不再赘述。以上所述本专利技术的具体实施方式,并不构成对本专利技术保护范围的限定。任何根据本专利技术的技术构思所做出的各种其他相应的改变与变形,均应包含在本专利技术权利要求的保护范围内。本文档来自技高网...

【技术保护点】
1.一种数据库插入排序方法,其特征在于,包括以下步骤:步骤S1、根据排序号大小更新排序字段的排序号为从1开始的连续序号;步骤S2、将所有所述排序号扩大N倍,N为大于或等于2的整数;步骤S3、根据待插入数据和参照数据的唯一键值获取待插入数据和参照数据的排序号,如果需要将所述待插入数据前移,则将所述待插入数据的排序号修改为所述参照数据的排序号减M;如果需要将所述待插入数据后移,则将所述待插入数据的排序号修改为所述参照数据的排序号加M;M为大于0且小于N的整数;步骤S4、根据排序号大小重新更新所述排序字段的排序号为从1开始的连续序号。

【技术特征摘要】
1.一种数据库插入排序方法,其特征在于,包括以下步骤:步骤S1、根据排序号大小更新排序字段的排序号为从1开始的连续序号;步骤S2、将所有所述排序号扩大N倍,N为大于或等于2的整数;步骤S3、根据待插入数据和参照数据的唯一键值获取待插入数据和参照数据的排序号,如果需要将所述待插入数据前移,则将所述待插入数据的排序号修改为所述参照数据的排序号减M;如果需要将所述待插入数据后移,则将所述待插入数据的排序号修改为所述参照数据的排序号加M;M为大于0且小于N的整数;步骤S4、根...

【专利技术属性】
技术研发人员:黄洪冰张永强陶天林
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1