CN116644085A - 数据查询方法、装置、存储介质以及电子设备 - Google Patents

数据查询方法、装置、存储介质以及电子设备 Download PDF

Info

Publication number
CN116644085A
CN116644085A CN202210142600.6A CN202210142600A CN116644085A CN 116644085 A CN116644085 A CN 116644085A CN 202210142600 A CN202210142600 A CN 202210142600A CN 116644085 A CN116644085 A CN 116644085A
Authority
CN
China
Prior art keywords
field
column
library
current
query statement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210142600.6A
Other languages
English (en)
Inventor
刘卫正
梁华欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202210142600.6A priority Critical patent/CN116644085A/zh
Publication of CN116644085A publication Critical patent/CN116644085A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据查询方法、装置、存储介质以及电子设备。该方法包括:获取用于查询数据库中的数据的查询语句;确定查询语句中的列字段,其中,列字段用于指示查询语句所要查询的列的名称;为列字段补充表字段与库字段,得到目标查询语句,其中,表字段用于指示列字段所属于的表的表名称,库字段用于指示列所属于的库的库名称;运行目标查询语句,得到查询结果。本发明解决了人工补全、校验SQL的方式准确率低、效率低的技术问题。

Description

数据查询方法、装置、存储介质以及电子设备
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据查询方法、装置、存储介质以及电子设备。
背景技术
现有技术中在使用SQL语句查询数据库数据时,可能存在SQL语句中库、表信息不全的情况。SQL补全、检验方式主要靠使用者手动输入库、表、列信息,因此有可能出现输入错误的问题,增加了使用者的工作量。同时有些不存在的库、表、列或者有冲突的列信息只有在实际执行时才会出现错误,预先并不能够感知到,导致使用SQL语句查询数据库数据工作效率低,浪费机器资源。
发明内容
本发明实施例提供了一种数据查询方法、装置、存储介质以及电子设备,以至少解决人工补全、校验SQL的方式准确率低、效率低的的技术问题。
根据本发明实施例的一个方面,提供了一种数据查询方法,包括:获取用于查询数据库中的数据的查询语句;确定上述查询语句中的列字段,其中,上述列字段用于指示上述查询语句所要查询的列的名称;为上述列字段补充表字段与库字段,得到目标查询语句,其中,上述表字段用于指示上述列字段所属于的表的表名称,上述库字段用于指示上述列所属于的库的库名称;运行上述目标查询语句,得到查询结果。
根据本发明实施例的另一方面,提供了一种数据查询装置,包括:第一获取模块,用于获取用于查询数据库中的数据的查询语句;第一确定模块,用于确定上述查询语句中的列字段,其中,上述列字段用于指示上述查询语句所要查询的列的名称;第一补充模块,用于为上述列字段补充表字段与库字段,得到目标查询语句,其中,上述表字段用于指示上述列字段所属于的表的表名称,上述库字段用于指示上述列所属于的库的库名称;第一运行模块,用于运行上述目标查询语句,得到查询结果。
作为一种可选的示例,上述第一确定模块包括:获取单元,用于获取上述查询语句中的第一字符串和第二字符串之间的所有字段;第一确定单元,用于从上述所有字段中确定出上述列字段。
作为一种可选的示例,上述第一确定单元包括:确定子单元,用于将上述所有字段中每一个字段确定为当前字段,对上述当前字段执行如下操作:在上述当前字段未包括上述表字段与上述库字段,或者上述当前字段未包括上述库字段的情况下,将上述当前字段确定为上述列字段。
作为一种可选的示例,上述第一补充模块包括:第二确定单元,用于将每一个上述列字段确定为当前列字段,对上述当前列字段执行如下操作:获取上述当前列字段的源信息,其中,上述源信息中包括上述当前列字段所属于的表的当前表字段和上述当前列字段所属于的库的当前库字段;将上述当前表字段添加到上述当前列字段之前,并将上述当前表字段与上述当前列字段之间添加连接符号;将上述当前库字段添加到上述当前表字段之前,并在上述当前库字段与上述当前表字段之间添加上述连接符号。
作为一种可选的示例,上述装置还包括:第一提示模块,用于在为上述列字段补充表字段与库字段时,在上述列字段在上述数据库中不存在的情况下,提示第一提示消息,其中,上述第一提示消息用于提示上述列字段错误。
作为一种可选的示例,上述装置还包括:第二提示模块,用于在为上述列字段补充表字段与库字段时,在上述列字段属于多个表或者属于多个库的情况下,提示第二提示消息,其中,上述第二提示消息用于提示上述列字段对应有多个表字段或者对应有多个库字段。
作为一种可选的示例,上述装置还包括:第二获取模块,用于在提示上述第一提示消息或者提示上述第二提示消息后,在接收到对上述查询语句的调整指令的情况下,获取调整后的新的上述查询语句;第二确定模块,用于确定新的上述查询语句中的上述列字段;第二补充模块,用于为新的上述查询语句的上述列字段补充上述表字段与上述库字段,得到新的上述目标查询语句;第二运行模块,用于运行新的上述目标查询语句,得到查询结果。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述数据查询方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的数据查询方法。
在本发明实施例中,采用了获取用于查询数据库中的数据的查询语句;确定上述查询语句中的列字段,其中,上述列字段用于指示上述查询语句所要查询的列的名称;为上述列字段补充表字段与库字段,得到目标查询语句,其中,上述表字段用于指示上述列字段所属于的表的表名称,上述库字段用于指示上述列所属于的库的库名称;运行上述目标查询语句,得到查询结果的方法,由于在上述方法中,通过对SQL的解析,对未标记的字段进行自动补全,从而实现了自动补全、校验SQL的目的,进而解决了人工补全、校验SQL的方式准确率低、效率低的的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的数据查询方法的流程图;
图2是根据本发明实施例的一种可选的数据查询方法的补全、校验流程图;
图3是根据本发明实施例的一种可选的数据查询装置的结构示意图;
图4是根据本发明实施例的一种可选的电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的第一方面,提供了一种数据查询方法,可选地,如图1所示,上述方法包括:
S102,获取用于查询数据库中的数据的查询语句;
S104,确定查询语句中的列字段,其中,列字段用于指示查询语句所要查询的列的名称;
S106,为列字段补充表字段与库字段,得到目标查询语句,其中,表字段用于指示列字段所属于的表的表名称,库字段用于指示列所属于的库的库名称;
S108,运行目标查询语句,得到查询结果。
可选地,本实施例中,数据库为一种结构化查询语言,可以拥有多个数据表,库字段代表数据库的名称;表为数据表,表字段代表表的名称,表字段的表示方法可以为库字段.表字段,表达为此表字段在某数据库中,例如表字段d1.product,表示为此数据表在d1数据库中,数据表可以实际存储数据,数据表可以包含多个列;列为数据列,列字段代表列的名称,列字段的表示方法可以为库字段.表字段.列字段,表达为此列字段在某数据库中的某数据列,例如列字段d1.product.id,表示为此列字段在d1数据库中的d1.product列中,每一列的数据类型都相同,但是值不相同,代表某类型的一系列数据;库、表、列之间的关系:表和列通过访问物理数据库获得,数据库包含表,表又包含列。
可选地,本实施例中通过对数据库的解析,获取到数据库中数据库、数据表、数据列的源信息,包括数据库、数据表、数据列的名称,即库字段、表字段、列字段。根据源信息,对未标记数据库、数据表的列字段进行补全,补全过程中若出现数据库、数据表、数据列的信息都在数据库中不可查询的情况,会给出相应的提示进行修改;如果出现同名字段,会给出提示哪几个数据库、数据表有相同的数据表字段、数据列字段,经过修改运行目标查询语句,输出正确的查询结果。
通过本实施例,对SQL的解析,对未标记的字段进行自动补全,从而实现了自动补全、校验SQL的目的,进而解决了人工补全、校验SQL的方式准确率低、效率低的的技术问题。
作为一种可选的示例,确定查询语句中的列字段包括:
获取查询语句中的第一字符串和第二字符串之间的所有字段;
从所有字段中确定出列字段。
可选地,本实施例中第一字符串为使用者输入的查询语句中的SELECT中的字符串,第二字符串为使用者输入的查询语句中的FROM中的字符串,获取查询语句中第一字符串和第二字符串的所有字段,可能包括库字段、表字段、列字段,在所有字段中确定出哪些为列字段,例如现有两个库:d1、d2;d1库中包括表product,记做d1.product,d2库中包括表order,记做d2.order;两张表中分别有以下列:
d2.order:id、name、model、order_time、user_name、address;
d1.product:id、name、model、product_date。
使用者输入查询语为
SELECT:order.id、id、name、order_name、user_name、order_time、product_date;
FROM:d2.order、d1.product。
第一字符串为SELECT,第二字符串为FROM,确定出所有字符串中列字段有order.id、id、name、order_name、user_name、order_time、product_date。
作为一种可选的示例,从所有字段中确定出列字段包括:
将所有字段中每一个字段确定为当前字段,对当前字段执行如下操作:
在当前字段未包括表字段与库字段,或者当前字段未包括库字段的情况下,将当前字段确定为列字段。
可选地,本实施例中将所有列字段进行操作,字段名称中未包括表字段与库字段,或者为包括库字段的情况,将此字段确定为列字段,例如上述举例的所有字段中order.id包括了表字库和列字库,未包含库字段,将此字段确定为列字段。字段id包括了列字库,未包括表字库和库字段,将此字段确定为列字段。
作为一种可选的示例,为列字段补充表字段与库字段,得到目标查询语句包括:
将每一个列字段确定为当前列字段,对当前列字段执行如下操作:
获取当前列字段的源信息,其中,源信息中包括当前列字段所属于的表的当前表字段和当前列字段所属于的库的当前库字段;
将当前表字段添加到当前列字段之前,并将当前表字段与当前列字段之间添加连接符号;
将当前库字段添加到当前表字段之前,并在当前库字段与当前表字段之间添加连接符号。
可选地,本实施例中对每一个列字段进行处理,在当前字段未包括表字段与库字段的情况下,将对应的当前表字段添加到当前列字段之前,并将当前表字段与当前列字段之间添加连接符号;再将对应的当前库字段添加到当前表字段之前,并在当前库字段与当前表字段之间添加连接符号。在当前字段未包括库字段的情况下,将对应的当前库字段添加到当前表字段之前,并在当前库字段与当前表字段之间添加连接符号。例如当前字段为order.id的情况下,判断未包括库字段,将对应的当前库字段d2添加到当前表字段order.id之前,并在当前库字段d2与当前表字段order.id之间添加连接符号,得到d2.order.id。
作为一种可选的示例,在运行目标查询语句,得到查询结果之前,上述方法还包括:
在为列字段补充表字段与库字段时,在列字段在数据库中不存在的情况下,提示第一提示消息,其中,第一提示消息用于提示列字段错误。
可选地,本实施例中若目标查询语句中的列字段在数据库中不存在,提示列字段错误的消息,并把此列字段删除。例如目标查询语句中的列字段order_name在表d1.product、d2.order中均未出现,则提示消息列字段order_name输入错误,并将order_name删除。
作为一种可选的示例,在运行目标查询语句,得到查询结果之前,上述方法还包括:
在为列字段补充表字段与库字段时,在列字段属于多个表或者属于多个库的情况下,提示第二提示消息,其中,第二提示消息用于提示列字段对应有多个表字段或者对应有多个库字段。
可选地,本实施例中若目标查询语句中的列字段属于多个数据表或者属于多个数据库,则提示列字段对应有多个表字段或者对应有多个库字段的消息,例如列字段d1在数据表d1.product、d2.order中均有出现,则提示“d2.order,d1.product有同名字段id”,若使用者进行了修改,修改后的列字段为product.id,这样就指明列字段product.id属于数据表d1.product。
作为一种可选的示例,上述方法还包括:
在提示第一提示消息或者提示第二提示消息后,在接收到对查询语句的调整指令的情况下,获取调整后的新的查询语句;
确定新的查询语句中的列字段;
为新的查询语句的列字段补充表字段与库字段,得到新的目标查询语句;
运行新的目标查询语句,得到查询结果。
可选地,本实施例中提示第一提示消息或者提示第二提示消息后且对出现异常情况提示的字段进行修改调整后,得到调整后新的查询语句,对新的查询语句中的列字段进行补全,得到新的目标查询语句,最后得到查询结果。例如调整后的新的查询语句中新的列字段product.id属于数据表d1.product,对新的列字段product.id进行补全,得到d1.product.id。
可选地,本实施例中一个SQL语句被补全和校验的过程通过一个具体的例子进行介绍,具体过程如图2所示:
已知:现有两个库:d1、d2;两个库中分别有一张表:d1.product、d2.order,两张表中分别有以下列:d2.order:id、name、model、order_time、user_name、address;d1.product:id、name、model、product_date
使用者输入的SQL:SELECT:order.id,id,name,order_name,user_name,order_time,product_date;
FROM:d2.order,d1.product;
一个SQL语句被补全和校验的第一步,通过解析得到了库、表、列各个字段的名称。库:d1、d2;表:order、product;列:order.id、id、name、order_name、user_name、order_time、product_date。
一个SQL语句被补全和校验的第二步,根据已知库、表、列的源信息,对确定的字段进行补全,补全后的结果为:SELECT:d2.order.id、id、name、order_name、d2.order.user_name、d2.order.order_time、d1.product.product_date;FROM:d2.order、d1.product。对order.id、user_name、order_time、product_date这些字段进行了补全,因为这些字段所属的库、表是确定的。列字段order.id代表order表的id列,由于已知order表来源于d2库,所以补全为d2.order.id。列字段user_name由于库、表的源信息都已经确定,所以在order表、product表中查找user_name字段,发现只有order表中有该字段,所以补全为d2.order.user_name,与列字段user_name的查找方法,同时也补全了列字段order_time和列字段product_time。
一个SQL语句被补全和校验的第三步,校验字段是否物理存在,其中,物理存在指库、表、列的信息都在数据库中可查询。通过校验发现列字段order_name在order表、product表中均没有出现,需给出相应提示“order_name均未在d2.order和d1.product中出现”;假设使用者根据提示修正了SQL去掉了order_name,通过了第三步。修正后的SQL语句:SELECT:d2.order.id、id、name、d2.order.user_name、d2.order.order_time、d1.product.product_date;FROM:d2.order、d1.product。
一个SQL语句被补全和校验的第四步,校验SQL中无法补全的冲突字段,并根据情况给出相应的提示。第三步通过后发现列字段id、列字段name均未进行补全,因为:id列字段在order表、product表中均有出现,与order.id不同的是,id列字段并没有标明来自于哪个表,所以无法进行补全,所以符合同名字段的情况,需给出“d2.order、d1.product有同名字段id”的提示;列字段name与列字段id无法补全的原因相同,需给出提示“d2.order、d1.product有同名字段name”的提示;
如果以上提示使用者都对冲突字段进行了修正,最后就能得到一个正确的SQL,如下:
SELECT:d2.order.id、d1.product.id、d2.order.name、d2.order.user_name、d2.order.order_time、d1.product.product_date;
FROM:d2.order、d1.product。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本申请实施例的另一方面,还提供了一种数据查询装置,如图3所示,包括:
第一获取模块302,用于获取用于查询数据库中的数据的查询语句;
第一确定模块304,用于确定查询语句中的列字段,其中,列字段用于指示查询语句所要查询的列的名称;
第一补充模块306,用于为列字段补充表字段与库字段,得到目标查询语句,其中,表字段用于指示列字段所属于的表的表名称,库字段用于指示列所属于的库的库名称;
第一运行模块308,用于运行目标查询语句,得到查询结果。
可选地,本实施例中,数据库为一种结构化查询语言,可以拥有多个数据表,库字段代表数据库的名称;表为数据表,表字段代表表的名称,表字段的表示方法可以为库字段.表字段,表达为此表字段在某数据库中,例如表字段d1.product,表示为此数据表在d1数据库中,数据表可以实际存储数据,数据表可以包含多个列;列为数据列,列字段代表列的名称,列字段的表示方法可以为库字段.表字段.列字段,表达为此列字段在某数据库中的某数据列,例如列字段d1.product.id,表示为此列字段在d1数据库中的d1.product列中,每一列的数据类型都相同,但是值不相同,代表某类型的一系列数据;库、表、列之间的关系:表和列通过访问物理数据库获得,数据库包含表,表又包含列。
可选地,本实施例中通过对数据库的解析,获取到数据库中数据库、数据表、数据列的源信息,包括数据库、数据表、数据列的名称,即库字段、表字段、列字段。根据源信息,对未标记数据库、数据表的列字段进行补全,补全过程中若出现数据库、数据表、数据列的信息都在数据库中不可查询的情况,会给出相应的提示进行修改;如果出现同名字段,会给出提示哪几个数据库、数据表有相同的数据表字段、数据列字段,经过修改运行目标查询语句,输出正确的查询结果。
通过本实施例,对SQL的解析,对未标记的字段进行自动补全,从而实现了自动补全、校验SQL的目的,进而解决了人工补全、校验SQL的方式准确率低、效率低的的技术问题。
作为一种可选的示例,上述第一确定模块包括:
获取单元,用于获取查询语句中的第一字符串和第二字符串之间的所有字段;
第一确定单元,用于从所有字段中确定出列字段。
可选地,本实施例中第一字符串为使用者输入的查询语句中的SELECT中的字符串,第二字符串为使用者输入的查询语句中的FROM中的字符串,获取查询语句中第一字符串和第二字符串的所有字段,可能包括库字段、表字段、列字段,在所有字段中确定出哪些为列字段,例如现有两个库:d1、d2;d1库中包括表product,记做d1.product,d2库中包括表order,记做d2.order;两张表中分别有以下列:
d2.order:id、name、model、order_time、user_name、address;
d1.product:id、name、model、product_date。
使用者输入查询语为
SELECT:order.id、id、name、order_name、user_name、order_time、product_date;
FROM:d2.order、d1.product。
第一字符串为SELECT,第二字符串为FROM,确定出所有字符串中列字段有order.id、id、name、order_name、user_name、order_time、product_date。
作为一种可选的示例,上述第一确定单元包括:
确定子单元,用于将所有字段中每一个字段确定为当前字段,对当前字段执行如下操作:
在当前字段未包括表字段与库字段,或者当前字段未包括库字段的情况下,将当前字段确定为列字段。
可选地,本实施例中将所有列字段进行操作,字段名称中未包括表字段与库字段,或者为包括库字段的情况,将此字段确定为列字段,例如上述举例的所有字段中order.id包括了表字库和列字库,未包含库字段,将此字段确定为列字段。字段id包括了列字库,未包括表字库和库字段,将此字段确定为列字段。
作为一种可选的示例,上述补充模块包括:
第二确定单元,用于将每一个列字段确定为当前列字段,对当前列字段执行如下操作:
获取当前列字段的源信息,其中,源信息中包括当前列字段所属于的表的当前表字段和当前列字段所属于的库的当前库字段;
将当前表字段添加到当前列字段之前,并将当前表字段与当前列字段之间添加连接符号;
将当前库字段添加到当前表字段之前,并在当前库字段与当前表字段之间添加连接符号。
可选地,本实施例中对每一个列字段进行处理,在当前字段未包括表字段与库字段的情况下,将对应的当前表字段添加到当前列字段之前,并将当前表字段与当前列字段之间添加连接符号;再将对应的当前库字段添加到当前表字段之前,并在当前库字段与当前表字段之间添加连接符号。在当前字段未包括库字段的情况下,将对应的当前库字段添加到当前表字段之前,并在当前库字段与当前表字段之间添加连接符号。例如当前字段为order.id的情况下,判断未包括库字段,将对应的当前库字段d2添加到当前表字段order.id之前,并在当前库字段d2与当前表字段order.id之间添加连接符号,得到d2.order.id。
作为一种可选的示例,上述装置还包括:
第一提示模块,用于在为列字段补充表字段与库字段时,在列字段在数据库中不存在的情况下,提示第一提示消息,其中,第一提示消息用于提示列字段错误。
可选地,本实施例中若目标查询语句中的列字段在数据库中不存在,提示列字段错误的消息,并把此列字段删除。例如目标查询语句中的列字段order_name在表d1.product、d2.order中均未出现,则提示消息列字段order_name输入错误,并将order_name删除。
作为一种可选的示例,上述装置还包括:
第二提示模块,用于在为列字段补充表字段与库字段时,在列字段属于多个表或者属于多个库的情况下,提示第二提示消息,其中,第二提示消息用于提示列字段对应有多个表字段或者对应有多个库字段。
可选地,本实施例中若目标查询语句中的列字段属于多个数据表或者属于多个数据库,则提示列字段对应有多个表字段或者对应有多个库字段的消息,例如列字段d1在数据表d1.product、d2.order中均有出现,则提示“d2.order,d1.product有同名字段id”,若使用者进行了修改,修改后的列字段为product.id,这样就指明列字段product.id属于数据表d1.product。
作为一种可选的示例,上述装置还包括:
第二获取模块,用于在提示第一提示消息或者提示第二提示消息后,在接收到对查询语句的调整指令的情况下,获取调整后的新的查询语句;
第二确定模块,用于确定新的查询语句中的列字段;
第二补充模块,用于为新的查询语句的列字段补充表字段与库字段,得到新的目标查询语句;
第二运行模块,用于运行新的目标查询语句,得到查询结果。
可选地,本实施例中提示第一提示消息或者提示第二提示消息后且对出现异常情况提示的字段进行修改调整后,得到调整后新的查询语句,对新的查询语句中的列字段进行补全,得到新的目标查询语句,最后得到查询结果。例如调整后的新的查询语句中新的列字段product.id属于属于数据表d1.product,对新的列字段product.id进行补全,得到d1.product.id。
本实施例的其他示例请参见上述示例,在此不在赘述。
图4是根据本申请实施例的一种可选的电子设备的结构框图,如图4所示,包括处理器402、通信接口404、存储器406和通信总线408,其中,处理器402、通信接口404和存储器406通过通信总线408完成相互间的通信,其中,
存储器406,用于存储计算机程序;
处理器402,用于执行存储器406上所存放的计算机程序时,实现如下步骤:
获取用于查询数据库中的数据的查询语句;
确定查询语句中的列字段,其中,列字段用于指示查询语句所要查询的列的名称;
为列字段补充表字段与库字段,得到目标查询语句,其中,表字段用于指示列字段所属于的表的表名称,库字段用于指示列所属于的库的库名称;
运行目标查询语句,得到查询结果。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器406中可以但不限于包括上述请求的处理装置中的第一获取模块302、第一确定模块304、第一补充模块306以及第一运行模块308。此外,还可以包括但不限于上述请求的处理装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图4所示的结构仅为示意,实施上述请求的处理方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图4其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图4所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述数据查询方法中的步骤。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种数据查询方法,其特征在于,包括:
获取用于查询数据库中的数据的查询语句;
确定所述查询语句中的列字段,其中,所述列字段用于指示所述查询语句所要查询的列的名称;
为所述列字段补充表字段与库字段,得到目标查询语句,其中,所述表字段用于指示所述列字段所属于的表的表名称,所述库字段用于指示所述列所属于的库的库名称;
运行所述目标查询语句,得到查询结果。
2.根据权利要求1所述的方法,其特征在于,所述确定所述查询语句中的列字段包括:
获取所述查询语句中的第一字符串和第二字符串之间的所有字段;
从所述所有字段中确定出所述列字段。
3.根据权利要求2所述的方法,其特征在于,所述从所述所有字段中确定出所述列字段包括:
将所述所有字段中每一个字段确定为当前字段,对所述当前字段执行如下操作:
在所述当前字段未包括所述表字段与所述库字段,或者所述当前字段未包括所述库字段的情况下,将所述当前字段确定为所述列字段。
4.根据权利要求1所述的方法,其特征在于,所述为所述列字段补充表字段与库字段,得到目标查询语句包括:
将每一个所述列字段确定为当前列字段,对所述当前列字段执行如下操作:
获取所述当前列字段的源信息,其中,所述源信息中包括所述当前列字段所属于的表的当前表字段和所述当前列字段所属于的库的当前库字段;
将所述当前表字段添加到所述当前列字段之前,并将所述当前表字段与所述当前列字段之间添加连接符号;
将所述当前库字段添加到所述当前表字段之前,并在所述当前库字段与所述当前表字段之间添加所述连接符号。
5.根据权利要求1所述的方法,其特征在于,在运行所述目标查询语句,得到查询结果之前,所述方法还包括:
在为所述列字段补充表字段与库字段时,在所述列字段在所述数据库中不存在的情况下,提示第一提示消息,其中,所述第一提示消息用于提示所述列字段错误。
6.根据权利要求1所述的方法,其特征在于,在运行所述目标查询语句,得到查询结果之前,所述方法还包括:
在为所述列字段补充表字段与库字段时,在所述列字段属于多个表或者属于多个库的情况下,提示第二提示消息,其中,所述第二提示消息用于提示所述列字段对应有多个表字段或者对应有多个库字段。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
在提示所述第一提示消息或者提示所述第二提示消息后,在接收到对所述查询语句的调整指令的情况下,获取调整后的新的所述查询语句;
确定新的所述查询语句中的所述列字段;
为新的所述查询语句的所述列字段补充所述表字段与所述库字段,得到新的所述目标查询语句;
运行新的所述目标查询语句,得到查询结果。
8.一种数据查询装置,其特征在于,包括:
第一获取模块,用于获取用于查询数据库中的数据的查询语句;
第一确定模块,用于确定所述查询语句中的列字段,其中,所述列字段用于指示所述查询语句所要查询的列的名称;
第一补充模块,用于为所述列字段补充表字段与库字段,得到目标查询语句,其中,所述表字段用于指示所述列字段所属于的表的表名称,所述库字段用于指示所述列所属于的库的库名称;
第一运行模块,用于运行所述目标查询语句,得到查询结果。
9.一种计算机可读的存储介质,所述计算机可读的存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
CN202210142600.6A 2022-02-16 2022-02-16 数据查询方法、装置、存储介质以及电子设备 Pending CN116644085A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210142600.6A CN116644085A (zh) 2022-02-16 2022-02-16 数据查询方法、装置、存储介质以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210142600.6A CN116644085A (zh) 2022-02-16 2022-02-16 数据查询方法、装置、存储介质以及电子设备

Publications (1)

Publication Number Publication Date
CN116644085A true CN116644085A (zh) 2023-08-25

Family

ID=87623461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210142600.6A Pending CN116644085A (zh) 2022-02-16 2022-02-16 数据查询方法、装置、存储介质以及电子设备

Country Status (1)

Country Link
CN (1) CN116644085A (zh)

Similar Documents

Publication Publication Date Title
CN111522816B (zh) 基于数据库引擎的数据处理方法、装置、终端及介质
US11392775B2 (en) Semantic recognition method, electronic device, and computer-readable storage medium
US8601438B2 (en) Data transformation based on a technical design document
CN111339041A (zh) 文件解析入库、文件生成方法及装置
CN111176996A (zh) 测试用例生成方法、装置、计算机设备及存储介质
KR20190095099A (ko) 거래 시스템 에러 검출 방법, 장치, 저장 매체 및 컴퓨터 장치
CN110941779A (zh) 加载页面的方法、装置、存储介质及电子设备
CN110825745B (zh) 页面的生成方法及装置
CN110633258B (zh) 日志插入方法、装置、计算机装置及存储介质
CN115599359A (zh) 一种代码生成方法、装置、设备及介质
CN111444208B (zh) 一种数据更新方法及相关设备
CN112000690B (zh) 解析结构化操作语句的方法和装置
US20180314683A1 (en) Method and device for processing natural language
CN117171030A (zh) 软件运行环境检测方法、装置、设备及存储介质
CN116644085A (zh) 数据查询方法、装置、存储介质以及电子设备
CN114116773A (zh) 一种结构化查询语言sql文本审核方法及装置
CN114896269A (zh) 结构化查询语句检测方法、装置、电子设备及存储介质
CN111831659B (zh) 一种检查索引的方法、装置及计算设备
CN110515653B (zh) 文档生成方法、装置、电子设备及计算机可读存储介质
CN113268483A (zh) 请求处理方法和装置、电子设备和存储介质
CN113724808A (zh) 医学调查问卷生成方法、装置、电子设备及存储介质
CN110737642A (zh) 数据库信息分析方法、装置、计算机装置及存储介质
CN111159162A (zh) 数据库配置方法及设备
CN111221843A (zh) 大数据处理方法及装置
CN111782667B (zh) 一种MongoDB更新数据的驱动方法、系统及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination