一种数据库的多重查询方法

文档序号:8395872阅读:287来源:国知局
一种数据库的多重查询方法
【技术领域】
[0001] 本发明涉及数据查询技术领域,特别是涉及一种数据库的多重查询表中数据的方 法。
【背景技术】
[0002] 设计数据库和创建数据库的最终目的是使用数据库。与数据一起工作是SQL (StructuredQueryLanguage,结构化查询语言,简称SQL)数据操作语言的工作。DML(Data manipulationlanguage,数据操作语言)的核心是select(选择,这里指一条计算机SQL 数据库中中常用的函数,用来选择对象)命令,它也是查询数据库的唯一命令。select是 SQL命令中最大、最复杂的命令。select的很多操作都来源于关系代数,并且包含了关系代 数的很多内容。即使在SQLite(SQLite是一款开源的、嵌入式关系型数据库,它没有独立 运行的进程,与所有服务的应用程序在应用程序进程内共生共存。SQLite在便携性、易用 性、紧凑型、高效性和可靠性方面有突出的表现。其设计目标是嵌入式的,目前在很多嵌入 式产品得到广泛使用)这样精简而高效的环境中,select语句的能力和复杂性依然是巨大 的。SQLite数据库的主要特点是:占用系统资源非常低,支持Windows/Linux/Unix等主流 的操作系统,可与很多程序语言相结合,并具有ODBC(OpenDatabaseConnectivity,开放 数据互联)接口,处理速度更快。SQLite通向select命令的方法非常具有逻辑性,它具备 支持关系数据库的底层关系理论的坚实基础。
[0003] 目前,我们常用的查询表格数据的方法,当查询条件为确定时,我们可以明确用 SQL语句来实现,但是当查询条件为多个条件的动态组合时,查询语句会由于分支太多及 IF语句的多重嵌套而变得相当复杂,特别是在嵌入式操作系统下,消化内存有限。
[0004] 因此,本发明提供一种数据库的优化的多重查询的方法。

【发明内容】

[0005] 本发明提出一种数据库的多重查询方法,包括以下步骤:
[0006] 将所要查询的第二个序号到最后一个序号对应的查询关键字段的值,逐一判断其 是否与所要查询的首个序号对应的查询关键字段的值相同,获取判断结果为不同的至少一 个连续序号中的第一个序号,得到序号集合;
[0007] 针对所述序号集合中的序号,将其作为所要查询的首个序号,将其与所述序号集 合中下一序号之间的序号作为所要查询的第二个序号到最后一个序号,重复所述将所要查 询的第二个序号到最后一个序号对应的查询关键字段的值,逐一判断其是否与所要查询的 首个序号对应的查询关键字段的值相同,获取判断结果为不同的至少一个连续序号中的第 一个序号,得到序号集合步骤;
[0008] 重复所述将所要查询的第二个序号到最后一个序号对应的查询关键字段的值,逐 一判断其是否与所要查询的首个序号对应的查询关键字段的值相同,获取判断结果为不同 的至少一个连续序号中的第一个序号,得到序号集合步骤,及所述针对所述序号集合中的 序号,将其作为所要查询的首个序号,将其与所述序号集合中下一序号之间的序号作为所 要查询的第二个序号到最后一个序号,重复所述将所要查询的第二个序号到最后一个序号 对应的查询关键字段的值,逐一判断其是否与所要查询的首个序号对应的查询关键字段的 值相同,获取判断结果为不同的至少一个连续序号中的第一个序号,得到序号集合步骤的 步骤,直至所得到的序号集合为空集,获取每个空集对应的所述序号集合的最后一个序号, 即得到查询关键字段的值重复出现的切割点。
[0009] 其中,所述数据库为SQLite数据库。
[0010] 其中,如果所述序号集合中的最后一个序号是数据库中所查询段的最后一个序 号,则停止根据该序号进行查询,并将该序号作为一个切割点。
[0011] 其中,如果所述序号集合中的最后一个序号不是数据库中所查询段的最后一个序 号,则将其作为所要查询的首个序号,将其与数据库中所查询段的最后一个序号之间的序 号作为所要查询的第二个序号到最后一个序号,重复所述将所要查询的第二个序号到最后 一个序号对应的查询关键字段的值,逐一判断其是否与所要查询的首个序号对应的查询关 键字段的值相同,获取判断结果为不同的至少一个连续序号中的第一个序号,得到序号集 合步骤。
[0012] 其中,根据所得到的查询关键字段的值重复出现的切割点,与所要查询的最后一 个序号一起构成查询结果的切割点的序号值,获取与其对应的信息,并以表格的形式呈现 给用户。
[0013] 与现有技术相比,本发明提出一种多重查询的方法,利用select查询命令,以及 SQL中的别名和限定、排序功能封装一种方法,方便有效查询重复字段在表的分割的序号, 再根据序号做相应的数据操作,有效地减少查询语句的分支和数量以及IF条件语句的嵌 套层数,从而提高程序的运行效率。
【附图说明】
[0014] 图1为本发明一个实施例的一种数据库的多重查询方法的流程图。
【具体实施方式】
[0015] 下面通过具体实施例,对本发明的技术方案进行清楚、完整的描述,显然,所描述 的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领 域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保 护的范围。
[0016] 请参阅图1,图1为本发明一个实施例的一种数据库的多重查询方法的流程图。提 出的一种数据库的多重查询方法,包括以下步骤:
[0017] a,将所要查询的第二个序号到最后一个序号对应的查询关键字段的值,逐一判断 其是否与所要查询的首个序号对应的查询关键字段的值相同,获取判断结果为不同的至少 一个连续序号中的第一个序号,得到序号集合;
[0018] b,针对所述序号集合中的序号,将其作为所要查询的首个序号,将其与所述序号 集合中下一序号之间的序号作为所要查询的第二个序号到最后一个序号,重复步骤a;
[0019] c,重复步骤a、b,直至所得到的序号集合为空集,获取每个空集对应的所述序号集 合的最后一个序号,即得到查询关键字段的值重复出现的切割点。
[0020] 具体实施时,所述数据库为SQLite数据库。
[0021] 具体实施时,如果所述序号集合中的最后一个序号是数据库中所查询段的最后一 个序号,则停止根据该序号进行查询,并将该序号作为一个切割点。
[0022] 具体实施时,如果所述序号集合中的最后一个序号不是数据库中所查询段的最后 一个序号,则将其作为所要查询的首个序号,将其与数据库中所查询段的最后一个序号之 间的序号作为所要查询的第二个序号到最后一个序号,重复步骤a。
[0023] 具体实施时,根据所得到的查询关键字段的值重复出现的切割点,与所要查询的 最后一个序号一起构成查询结果的切割点的序号值,获取与其对应的信息,并以表格的形 式呈现给用户。
[0024] 下面通过一个简单的实施例,来说明本发明的显著进步。
[0025] 假设有一个名为hotel的表,为了查询"NAME"为餐费的项目,首先我们要从其中 查询表中NAME的值重复出现的切割点数据,如表1所示:
[0026] 表1.hotel
[0027]
【主权项】
1. 一种数据库的多重查询方法,其特征在于,包括w下步骤: 将所要查询的第二个序号到最后一个序号对应的查询关键字段的值,逐一判断其是否 与所要查询的首个序号对应的查询关键字段的值相同,获取判断结果为不同的至少一个连 续序号中的第一个序号,得到序号集合; 针对所述序号集合中的序号,将其作为所要查询的首个序号,将其与所述序号集合中 下一序号之间的序号作为所要查询的第二个序号到最后一个序号,重复所述将所要查询的 第二个序号到最后一个序号对应的查询关键字段的值,逐一判断其是否与所要查询的首个 序号对应的查询关键字段的值相同,获取判断结果为不同的至少一个连续序号中的第一个 序号,得到序号集合步骤; 重复所述将所要查询的第二个序号到最后一个序号对应的查询关键字段的值,逐一判 断其是否与所要查询的首个序号对应的查询关键字段的值相同,获取判断结果为不同的至 少一个连续序号中的第一个序号,得到序号集合步骤,及所述针对所述序号集合中的序号, 将其作为所要查询的首个序号,将其与所述序号集合中下一序号之间的序号作为所要查询 的第二个序号到最后一个序号,重复所述将所要查询的第二个序号到最后一个序号对应 的查询关键字段的值,逐一判断其是否与所要查询的首个序号对应的查询关键字段的值相 同,获取判断结果为不同的至少一个连续序号中的第一个序号,得到序号集合步骤的步骤, 直至所得到的序号集合为空集,获取每个空集对应的所述序号集合的最后一个序号,即得 到查询关键字段的值重复出现的切割点。
2. 根据权利要求1所述的数据库的多重查询方法,其特征在于,所述数据库为SQLite 数据库。
3. 根据权利要求1所述的数据库的多重查询方法,其特征在于,如果所述序号集合中 的最后一个序号是数据库中所查询段的最后一个序号,则停止根据该序号进行查询,并将 该序号作为一个切割点。
4. 根据权利要求1所述的数据库的多重查询方法,其特征在于,如果所述序号集合中 的最后一个序号不是数据库中所查询段的最后一个序号,则将其作为所要查询的首个序 号,将其与数据库中所查询段的最后一个序号之间的序号作为所要查询的第二个序号到最 后一个序号,重复所述将所要查询的第二个序号到最后一个序号对应的查询关键字段的 值,逐一判断其是否与所要查询的首个序号对应的查询关键字段的值相同,获取判断结果 为不同的至少一个连续序号中的第一个序号,得到序号集合步骤。
5. 根据权利要求1所述的数据库的多重查询方法,其特征在于,根据所得到的查询关 键字段的值重复出现的切割点,与所要查询的最后一个序号一起构成查询结果的切割点的 序号值,获取与其对应的信息,并W表格的形式呈现给用户。
【专利摘要】本发明公开一种数据库的多重查询方法,包括以下步骤:a,将所要查询的第二个序号到最后一个序号对应的查询关键字段的值,逐一判断其是否与所要查询的首个序号对应的查询关键字段的值相同,获取判断结果为不同的至少一个连续序号中的第一个序号,得到序号集合;b,针对所述集合中的序号,将其作为所要查询的首个序号,将其与所述序号集合中下一序号之间的序号作为所要查询的第二个序号到最后一个序号,重复步骤a;c,重复步骤a、b,直至所得到的序号集合为空集,获取每个空集对应的所述序号集合的最后一个序号,即得到查询关键字段的值重复出现的切割点。
【IPC分类】G06F17-30
【公开号】CN104714952
【申请号】CN201310680366
【发明人】张朝阳, 聂慧萍, 张磊, 高阳, 余彦, 陈皓, 杨森
【申请人】航天信息股份有限公司
【公开日】2015年6月17日
【申请日】2013年12月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1