数据查询的方法及装置与流程

文档序号:11133977阅读:352来源:国知局
数据查询的方法及装置与制造工艺

本发明涉及计算机技术领域,尤其涉及一种数据查询的方法及装置。



背景技术:

目前,业界采用的结构化查询语言(Structured Query Language,sql)通常是硬性编写而成。在编写特定格式的sql查询语句时,容易将查询参数输入错误,一个字符的错误都会引起查询的失败,因此需要用户进行输入纠正,以得到正确的查询语句进行数据查询,使得sql查询语句的输入比较耗时。另外,在编写特定格式的sql查询语句时,同一个查询参数可能会被输入多次,如果每次输入均需要用户逐个字符进行输入,显然比较繁琐且耗时,查询效率低。



技术实现要素:

本发明所要解决的技术问题是提供一种数据查询的方法及装置。

本发明解决上述技术问题的技术方案如下:一种数据查询的方法,所述数据查询的方法包括:

S1,在用户输入sql查询语句过程中,根据预设的分析规则对已输入的字符进行分析,以分析出下一个待输入字符是否是查询参数的首字符;

S2,若所述下一个待输入字符是所述查询参数的首字符,则确定所述下一个待输入字符代表的查询参数类型,并根据预存的查询参数与查询参数类型之间的关联关系获取与确定的查询参数类型对应的查询参数;

S3,生成所获取的查询参数的选择列表,以供用户从所述选择列表中选择将要输入的查询参数;

S4,响应用户针对所述选择列表中的查询参数进行选择的选择指令,将所选择的查询参数输入至当前已输入字符之后。

优选地,所述步骤S1包括:

S11,获取预先存储的特定字符串,分析是否有预先存储的特定字符串与当前已输入的字符串相同;

S12,若有预先存储的特定字符串与当前输入的字符串相同,则分析出下一个待输入字符是所述查询参数的首字符。

优选地,所述步骤S1之前包括:

对sql查询语句中的字符串进行拆分,并根据sql查询语句的语义对拆分后的字符串进行统计分析,以得到特定字符串并进行存储。

优选地,所述步骤S3之后还包括:

若未接收到用户针对所述选择列表中的查询参数进行选择的选择指令,则接收用户输入的查询参数;

若所述选择列表中不存在用户输入的查询参数,则将用户输入的查询参数进行保存并与所述选择列表对应的查询参数类型进行关联。

优选地,还包括:

定时统计每一查询参数类型所关联的各查询参数被选择的次数;

根据所述各查询参数被选择的次数获取所述各查询参数的显示优先级,根据所述各查询参数的显示优先级调整各查询参数在对应的选择列表中的显示顺序。

本发明解决上述技术问题的技术方案还如下:一种数据查询的装置,所述数据查询的装置包括:

分析模块,用于在用户输入sql查询语句过程中,根据预设的分析规则对已输入的字符进行分析,以分析出下一个待输入字符是否是查询参数的首字符;

获取模块,用于若所述下一个待输入字符是所述查询参数的首字符,则确定所述下一个待输入字符代表的查询参数类型,并根据预存的查询参数与查询参数类型之间的关联关系获取与确定的查询参数类型对应的查询参数;

生成模块,用于生成所获取的查询参数的选择列表,以供用户从所述选择列表中选择将要输入的查询参数;

输入模块,用于响应用户针对所述选择列表中的查询参数进行选择的选择指令,将所选择的查询参数输入至当前已输入字符之后。

优选地,所述分析模块包括:

获取单元,用于获取预先存储的特定字符串,分析是否有预先存储的特定字符串与当前已输入的字符串相同;

分析单元,用于若有预先存储的特定字符串与当前输入的字符串相同,则分析出下一个待输入字符是所述查询参数的首字符。

优选地,所述数据查询的装置还包括:

拆分模块,用于对sql查询语句中的字符串进行拆分,并根据sql查询语句的语义对拆分后的字符串进行统计分析,以得到特定字符串并进行存储。

优选地,所述数据查询的装置还包括:

接收模块,用于若未接收到用户针对所述选择列表中的查询参数进行选择的选择指令,则接收用户输入的查询参数;

关联模块,用于若所述选择列表中不存在用户输入的查询参数,则将用户输入的查询参数进行保存并与所述选择列表对应的查询参数类型进行关联。

优选地,所述数据查询的装置还包括:

统计模块,用于定时统计每一查询参数类型所关联的各查询参数被选择的次数;

调整模块,用于根据所述各查询参数被选择的次数获取所述各查询参数的显示优先级,根据所述各查询参数的显示优先级调整各查询参数在对应的选择列表中的显示顺序。

本发明的有益效果是:本发明在用户编写sql查询语句时,对已输入的字符进行分析,在分析出用户下一个待输入的字符是查询参数的首字符时,可以根据已输入的字符确定下一个待输入的字符所代表的查询参数类型,然后将该查询参数类型下的查询参数以选择列表的形式显示,以供用户直接从选择列表中进行选择,使得在编写sql查询语句时,查询参数不需要用户逐个字符进行输入,降低了sql查询语句编写的出错率,编写更简便,实现sql查询语句的快速输入并提高数据查询效率。

附图说明

图1为本发明数据查询的方法一实施例的流程示意图;

图2为图1所示步骤S1的流程示意图;

图3为本发明数据查询的装置一实施例的结构示意图;

图4为图3所示分析模块的结构示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,图1为本发明数据查询的方法一实施例的流程示意图,该数据查询的方法包括以下步骤:

步骤S1,在用户输入sql查询语句过程中,根据预设的分析规则对已输入的字符进行分析,以分析出下一个待输入字符是否是查询参数的首字符;

本实施例中,用户在用于进行数据查询的装置所显示的查询界面上进行操作,在编写sql查询语句并输入时,通过预设的分析规则对用户已经输入的字符进行分析,以分析出下一个待输入字符是否是查询参数的首字符,即分析用户即将输入的下一字符串是否是查询参数,例如通过对用户已经输入的字符在sql查询语句中所代表的上下文关系进行分析,以确认用户下一个待输入字符是否是查询参数的首字符,或者仅仅根据用户已经输入的字符在sql查询语句中所代表的代表的含义进行分析(例如,如果用户已经输入的字符“create”,则下一个待输入字符为查询参数的首字符),以确认用户下一个待输入字符是否是查询参数的首字符。

其中,例如在金融或者保险行业中,查询参数可以是投保人、受益人、年收入、生日、证件有效期、客户号、工作单位、联系地址、教育程度等,当然,在其他行业中,查询参数为对应行业中的参数。

具体地,为了能够快速分析出用户即将输入的字符串是否为查询参数,可以实时地对用户已经输入的字符进行分析,或者定时对用户已经输入的字符进行分析,以减轻系统负担。

步骤S2,若所述下一个待输入字符是所述查询参数的首字符,则确定所述下一个待输入字符代表的查询参数类型,并根据预存的查询参数与查询参数类型之间的关联关系获取与确定的查询参数类型对应的查询参数;

本实施例中,查询参数类型包括查询结果字段、数据源名称、查询条件等类型。每一条sql查询语句的查询结果字段可以有多个,查询结果字段中可以细分为数据源类别字段、属性参数字段等。

其中,数据源类别字段对应的查询参数例如为投保人、受益人等,属性参数字段对应的查询参数例如为年收入、生日、证件有效期、客户号、工作单位、联系地址、教育等。

如果能够确认用户即将输入的下一个字符是查询参数的首字符,则确定下一个待输入字符所代表的查询参数类型,例如确定该下一个待输入字符是代表查询结果字段、数据源名称或查询条件类型,一般而言,通过对用户输入的前一个字符串或者前几个字符串,可以判断出下一个查询参数对应的查询参数类型。每一查询参数类型之下包括的查询参数具有一个或者多个,预先将每一查询参数类型之下包括的查询参数与查询参数类型进行关联并存储,如果已经得出查询参数类型,即可以得出该查询参数类型之下的所有查询参数。

步骤S3,生成所获取的查询参数的选择列表,以供用户从所述选择列表中选择将要输入的查询参数;

将用户即将输入的下一个字符所代表的查询参数类型下的所有查询参数直接以选择列表的形式进行展示,这样,用户可以直接从选择列表中选择查询参数,不需要输入对应的查询参数。或者,选择列表并不直接显示而是隐藏,在输入区域的附近以列表显示图标显示,用户在点击该列表显示图标后,才显示下一个字符所属的查询参数类型下的所有查询参数。此外,用户可以对选择列表进行调整,例如调整选择列表的显示位置、显示大小等。

步骤S4,响应用户针对所述选择列表中的查询参数进行选择的选择指令,将所选择的查询参数输入至当前已输入字符之后。

当用户从选择列表中选择对应的查询参数后,将用户选择的查询参数输入至用户当前已输入字符之后,以便继续输入sql查询语句,并进行数据查询。

本实施例中,由于查询参数可能是需要用户多次进行输入的sql查询语句中的特定部分,每一查询参数所属的查询参数类型是固定的,因此,可以将sql查询语句中的该部分抽取出来,通过对用户输入的sql查询语句的字符进行分析,并将即将要输入的查询参数以选择列表的形式进行展示,供用户直接从选择列表中进行选择,可以实现sql查询语句的快速输入。

与现有技术相比,本实施例在用户编写sql查询语句时,对已输入的字符进行分析,在分析出用户下一个待输入的字符是查询参数的首字符时,可以根据已输入的字符确定下一个待输入的字符所代表的查询参数类型,然后将该查询参数类型下的查询参数以选择列表的形式显示,以供用户直接从选择列表中进行选择,使得在编写sql查询语句时,查询参数不需要用户逐个字符进行输入,降低了sql查询语句编写的出错率,编写更简便,实现sql查询语句的快速输入并提高数据查询效率。

在一优选的实施例中,如图2所示,在上述图1的实施例的基础上,上述步骤S1包括:

步骤S11,获取预先存储的特定字符串,分析是否有预先存储的特定字符串与当前已输入的字符串相同;

步骤S12,若有预先存储的特定字符串与当前输入的字符串相同,则分析出下一个待输入字符是所述查询参数的首字符。

步骤S13,若预先存储的特定字符串与当前输入的字符串均不相同,则继续接收用户输入的字符。

本实施例在sql查询语句中,特定字符之后为查询参数。这些特定字符例如可以是create、alter、drop、insert、update、delete、grant、revoke、select、from、into、where等,在用户输入sql查询语句时,分析用户当前输入的字符,如果当前输入的是这些特定字符,即当前输入的字符串与预先存储的这些特定字符的其中之一相同时,则可以确定用户下一个待输入的字符是查询参数的首字符。

如果当前输入的字符串与每一预先存储的特定字符串均不相同,则可以确定用户下一个待输入字符不是查询参数的首字符,继续接收用户输入的字符。

优选地,在上述步骤S1之前包括:对sql查询语句中的字符串进行拆分,并根据sql查询语句的语义对拆分后的字符串进行统计分析,以得到特定字符串并进行存储。

本实施例中,可以预先对sql查询语句进行字符串拆分,将每一sql查询语句拆分为一个个的字符串。然后根据sql查询语句的语义对拆分得到的字符串进行统计分析,即根据每一字符串在sql查询语句中所代表的含义对字符串进行统计分析,例如对于字符串“create”,在sql查询语句中“create”后一字符串为查询参数的概率达到预设概率(例如为98%),则经统计分析后得出,字符串“create”为上述的特定字符串,将其进行存储以备后续进行使用。优选地,特定字符可以是create、alter、drop、insert、update、delete、grant、revoke、select、from、into、where等。

在一优选的实施例中,在上述图1的实施例的基础上,上述步骤S3之后还包括:

若未接收到用户针对所述选择列表中的查询参数进行选择的选择指令,则接收用户输入的查询参数;

若所述选择列表中不存在用户输入的查询参数,则将用户输入的查询参数进行保存并与所述选择列表对应的查询参数类型进行关联。

本实施例中,当查询参数以选择列表的形式显示后,如果用户从选择列表选择其中的一个查询参数,则说明当前已经存储了该查询参数类型对应的用户所需要输入的查询参数;如果选择列表中没有用户所需要输入的查询参数,则说明该查询参数类型下未存储有用户当前所需的查询参数,这时需要用户自行逐个输入对应的查询参数,然后将用户输入的该查询参数进行保存,并将其与当前的选择列表对应的查询参数类型进行关联,以便用户在下一次输入时,选择列表中可以直接显示该查询参数供用户进行选择,而不需要用户进行逐个字符输入该查询参数。

在一优选的实施例中,在上述图1的实施例的基础上,该数据查询的方法还包括:

定时统计每一查询参数类型所关联的各查询参数被选择的次数;

根据所述各查询参数被选择的次数获取所述各查询参数的显示优先级,根据所述各查询参数的显示优先级调整各查询参数在对应的选择列表中的显示顺序。

本实施例中,可以定时统计每一查询参数类型所关联的各查询参数在用户输入sql查询语句时被选择的次数,例如每隔3天或者5天对查询参数被选择的次数进行统计。对于每一查询参数类型下的查询参数,根据统计得到的各查询参数的次数获取显示优先级,例如某一查询参数统计得到的被选择的次数为10次,则对应的显示优先级为10,如果查询参数的优先级越大,则将查询参数排列在对应的选择列表的越靠前的位置,反之,如果查询参数的优先级越小,则将查询参数排列在对应的选择列表的越靠后的位置,使得用户常使用的查询参数排列在选择列表靠前的位置,方便用户在输入sql查询语句进行快速选择,进一步实现sql查询语句的快速输入并提高数据查询效率。

如图3所示,图3为本发明数据查询的装置一实施例的结构示意图,该数据查询的装置包括:

分析模块101,用于在用户输入sql查询语句过程中,根据预设的分析规则对已输入的字符进行分析,以分析出下一个待输入字符是否是查询参数的首字符;

本实施例中,用户在用于进行数据查询的装置所显示的查询界面上进行操作,在编写sql查询语句并输入时,通过预设的分析规则对用户已经输入的字符进行分析,以分析出下一个待输入字符是否是查询参数的首字符,即分析用户即将输入的下一字符串是否是查询参数,例如通过对用户已经输入的字符在sql查询语句中所代表的上下文关系进行分析,以确认用户下一个待输入字符是否是查询参数的首字符,或者仅仅根据用户已经输入的字符在sql查询语句中所代表的代表的含义进行分析(例如,如果用户已经输入的字符“create”,则下一个待输入字符为查询参数的首字符),以确认用户下一个待输入字符是否是查询参数的首字符。

其中,例如在金融或者保险行业中,查询参数可以是投保人、受益人、年收入、生日、证件有效期、客户号、工作单位、联系地址、教育程度等,当然,在其他行业中,查询参数为对应行业中的参数。

具体地,为了能够快速分析出用户即将输入的字符串是否为查询参数,可以实时地对用户已经输入的字符进行分析,或者定时对用户已经输入的字符进行分析,以减轻系统负担。

获取模块102,用于若所述下一个待输入字符是所述查询参数的首字符,则确定所述下一个待输入字符代表的查询参数类型,并根据预存的查询参数与查询参数类型之间的关联关系获取与确定的查询参数类型对应的查询参数;

本实施例中,查询参数类型包括查询结果字段、数据源名称、查询条件等类型。每一条sql查询语句的查询结果字段可以有多个,查询结果字段中可以细分为数据源类别字段、属性参数字段等。

其中,数据源类别字段对应的查询参数例如为投保人、受益人等,属性参数字段对应的查询参数例如为年收入、生日、证件有效期、客户号、工作单位、联系地址、教育等。

如果能够确认用户即将输入的下一个字符是查询参数的首字符,则确定下一个待输入字符所代表的查询参数类型,例如确定该下一个待输入字符是代表查询结果字段、数据源名称或查询条件类型,一般而言,通过对用户输入的前一个字符串或者前几个字符串,可以判断出下一个查询参数对应的查询参数类型。每一查询参数类型之下包括的查询参数具有一个或者多个,预先将每一查询参数类型之下包括的查询参数与查询参数类型进行关联并存储,如果已经得出查询参数类型,即可以得出该查询参数类型之下的所有查询参数。

生成模块103,用于生成所获取的查询参数的选择列表,以供用户从所述选择列表中选择将要输入的查询参数;

将用户即将输入的下一个字符所代表的查询参数类型下的所有查询参数直接以选择列表的形式进行展示,这样,用户可以直接从选择列表中选择查询参数,不需要输入对应的查询参数。或者,选择列表并不直接显示而是隐藏,在输入区域的附近以列表显示图标显示,用户在点击该列表显示图标后,才显示下一个字符所属的查询参数类型下的所有查询参数。此外,用户可以对选择列表进行调整,例如调整选择列表的显示位置、显示大小等。

输入模块104,用于响应用户针对所述选择列表中的查询参数进行选择的选择指令,将所选择的查询参数输入至当前已输入字符之后。

当用户从选择列表中选择对应的查询参数后,将用户选择的查询参数输入至用户当前已输入字符之后。

本实施例中,由于查询参数可能是需要用户多次进行输入的sql查询语句中的特定部分,每一查询参数所属的查询参数类型是固定的,因此,可以将sql查询语句中的该部分抽取出来,通过对用户输入的sql查询语句的字符进行分析,并将即将要输入的查询参数以选择列表的形式进行展示,供用户直接从选择列表中进行选择,可以实现sql查询语句的快速输入。

在一优选的实施例中,如图4所示,在上述图3的实施例的基础上,上述分析模块101包括:

获取单元1011,用于获取预先存储的特定字符串,分析是否有预先存储的特定字符串与当前已输入的字符串相同;

分析单元1012,用于若有预先存储的特定字符串与当前输入的字符串相同,则分析出下一个待输入字符是所述查询参数的首字符。

本实施例在sql查询语句中,特定字符之后为查询参数。这些特定字符例如可以是create、alter、drop、insert、update、delete、grant、revoke、select、from、into、where等,在用户输入sql查询语句时,分析用户当前输入的字符,如果当前输入的是这些特定字符,即当前输入的字符串与预先存储的这些特定字符的其中之一相同时,则可以确定用户下一个待输入的字符是查询参数的首字符。

如果当前输入的字符串与每一预先存储的特定字符串均不相同,则可以确定用户下一个待输入字符不是查询参数的首字符,继续接收用户输入的字符。

优选地,数据查询的装置还包括:拆分模块,用于对sql查询语句中的字符串进行拆分,并根据sql查询语句的语义对拆分后的字符串进行统计分析,以得到特定字符串并进行存储。

本实施例中,可以预先对sql查询语句进行字符串拆分,将每一sql查询语句拆分为一个个的字符串。然后根据sql查询语句的语义对拆分得到的字符串进行统计分析,即根据每一字符串在sql查询语句中所代表的含义对字符串进行统计分析,例如对于字符串“create”,在sql查询语句中“create”后一字符串为查询参数的概率达到预设概率(例如为98%),则经统计分析后得出,字符串“create”为上述的特定字符串,将其进行存储以备后续进行使用。优选地,特定字符可以是create、alter、drop、insert、update、delete、grant、revoke、select、from、into、where等。

在一优选的实施例中,在上述图3的实施例的基础上,数据查询的装置还包括:

接收模块,用于若未接收到用户针对所述选择列表中的查询参数进行选择的选择指令,则接收用户输入的查询参数;

关联模块,用于若所述选择列表中不存在用户输入的查询参数,则将用户输入的查询参数进行保存并与所述选择列表对应的查询参数类型进行关联。

本实施例中,当查询参数以选择列表的形式显示后,如果用户从选择列表选择其中的一个查询参数,则说明当前已经存储了该查询参数类型对应的用户所需要输入的查询参数;如果选择列表中没有用户所需要输入的查询参数,则说明该查询参数类型下未存储有用户当前所需的查询参数,这时需要用户自行逐个输入对应的查询参数,然后将用户输入的该查询参数进行保存,并将其与当前的选择列表对应的查询参数类型进行关联,以便用户在下一次输入时,选择列表中可以直接显示该查询参数供用户进行选择,而不需要用户进行逐个字符输入该查询参数。

在一优选的实施例中,在上述图3的实施例的基础上,所述数据查询的装置还包括:

统计模块,用于定时统计每一查询参数类型所关联的各查询参数被选择的次数;

调整模块,用于根据所述各查询参数被选择的次数获取所述各查询参数的显示优先级,根据所述各查询参数的显示优先级调整各查询参数在对应的选择列表中的显示顺序。

本实施例中,可以定时统计每一查询参数类型所关联的各查询参数在用户输入sql查询语句时被选择的次数,例如每隔3天或者5天对查询参数被选择的次数进行统计。对于每一查询参数类型下的查询参数,根据统计得到的各查询参数的次数获取显示优先级,例如某一查询参数统计得到的被选择的次数为10次,则对应的显示优先级为10,如果查询参数的优先级越大,则将查询参数排列在对应的选择列表的越靠前的位置,反之,如果查询参数的优先级越小,则将查询参数排列在对应的选择列表的越靠后的位置,使得用户常使用的查询参数排列在选择列表靠前的位置,方便用户在输入sql查询语句进行快速选择,进一步实现sql查询语句的快速输入并提高数据查询效率。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1