CN1881208A - 动态结构化查询语言语句的构造方法 - Google Patents
动态结构化查询语言语句的构造方法 Download PDFInfo
- Publication number
- CN1881208A CN1881208A CN 200510076324 CN200510076324A CN1881208A CN 1881208 A CN1881208 A CN 1881208A CN 200510076324 CN200510076324 CN 200510076324 CN 200510076324 A CN200510076324 A CN 200510076324A CN 1881208 A CN1881208 A CN 1881208A
- Authority
- CN
- China
- Prior art keywords
- query language
- parameter
- structured query
- building method
- dynamic structured
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种动态SQL语句的构造方法,包括以下步骤:针对每一条查询条件,将其转换为参数数据对象,并将所述参数数据对象映射到参数对象集合中,并将其他查询子句组合到查询子句表中;解析参数对象集合,将其转换为第一DSQL子表达式;判断所构造的第一DSQL子表达式是否合理;如果所构造的第一DSQL子表达式合理,则判断参数数据对象中的参数数据类型是否符合规定;如果符合规定,则进行赋值操作,将参数数据对象中的数据值赋予对应的参数名,并解析查询子句表,将查询子句添加到第一DSQL子表达式中,形成第DSQL子表达式;以及根据数据库映射,解析查询子句表,将第DSQL子表达式转换为动态SQL语句。
Description
技术领域
本发明涉及数据库,特别涉及访问关系数据库中的数据的方法,可以广泛应用于基于数据库技术的企业级应用。
背景技术
随着信息技术的发展,数据库的应用越来越广泛,各种企业级应用都普遍采用了数据库技术。如何快捷、有效地实现对数据库的访问是数据库应用的关键技术。在构建一个大型的面向对象业务系统,并将对象保存到关系型数据库中时,可能需要花很多时间去处理如何使对象持久化。
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle、Sybase、Microsoft SQL Server、Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select、Insert、Update、Delete、Create以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
一般访问关系数据库的方法是:将SQL代码嵌入到一个宿主语言里(例如,JAVA语言)。直接在对象中内嵌持久化代码的方法使得开发者能够快速书写代码。实现对数据库的数据访问通常是在应用中拼写SQL表达式,调用相应的接口实现访问。例如,带条件的查询语句通常是如下写法:SELECT*FROM table_name1 WHERE column1LIKE’x%’。这里LIKE必须和後面的’x%’相呼应表示以x为开头的字串。如果有多个查询条件并列,那么需要根据对数据访问的不同需求,在应用中构造不同的SQL表达式。对于数据库的修改、插入、删除、查询操作,特别是需要查询条件的操作,常常是需要构造相对复杂的SQL表达式。另外,由于关系数据库类型的不同,一些SQL表达式的语法也有不同的扩展。比如表示取出符合条件的前五条记录的结果集,在SQL Server中是用SELECT*FROM table_name1 WHEREtop 5这种语法来表示,而在Oracle数据库中是用SELECT*FROMtable_name1 WHERE rownum<6来表示获取记录的表达式。这样,在应用中书写访问数据库的代码,也会由于数据库类型的不同,需要构造完成相同功能的不同SQL表达式。使用内嵌SQL的缺点是它直接将业务类耦合到关系数据库的框架上。因此在业务类中内嵌SQL将导致代码难于维护和扩展。
发明内容
本发明的一个目的是尽量屏蔽由于关系数据库类型不同而带来的差异,对于使用者来说,需要通过配置信息来确定要访问的关系数据库类型,用户在进行对数据库访问操作时,使用本发明提供的方法,做为对数据库访问的统一接口。因此对使用者来讲,如同访问同一种数据库。
本发明的另一个目的是提供动态构造带查询条件的SQL表达式方法。如果有多个查询条件,可以通过本发明提供的方法,由查询条件动态构造一个SQL表达式,而不需要构造多个SQL表达式。
本发明能够实现应用动态构造SQL表达式的方法,简化了访问数据库的调用接口。本发明提出了一种创建健壮的(robust)持久层的方法,它用这样一种方式将对象映射到持久化机制中,即:关系框架的简单变化不会影响面向对象的代码。这种方法允许机构开发大规模的、关键任务的应用系统。健壮持久层(持久化类)的应用系统的类型体系结构是基于层模式的,层模式的基本思想是在一个给定层中的类可以与该层中的其它类交互,或与邻接层中的类交互。源码层次化使得应用系统内部的耦合被降低,因而系统更易于维护和功能增强,也大大提高了应用系统的健壮性。
本发明提供了一种方法,它能够通过实现动态构造SQL表达式,来简化对关系数据库的访问。
根据本发明,提供了一种动态结构化查询语言语句的构造方法,包括以下步骤:针对每一条查询条件,将其转换为参数数据对象,并将所述参数数据对象映射到参数对象集合中,并将其他查询子句组合到查询子句表中;解析参数对象集合,将其转换为第一自定义结构化查询语言子表达式;判断所构造的第一自定义结构化查询语言子表达式是否合理,如果不合理,则结束;如果所构造的第一自定义结构化查询语言子表达式合理,则判断参数数据对象中的参数数据类型是否符合规定,如果不符合规定的基本类型,则结束;如果符合规定,则进行赋值操作,将参数数据对象中的数据值赋予对应的参数名,并解析查询子句表,将查询子句添加到第一自定义结构化查询语言子表达式中,形成第二自定义结构化查询语言子表达式;以及根据数据库映射,解析查询子句表,将第二自定义结构化查询语言子表达式转换为动态结构化查询语言语句。
优选地,可以以一维数组的形式组织所述参数数据对象。
优选地,可以以链表的形式组织所述参数数据对象。
优选地,可以以二维数组的形式组织所述参数对象集合。
优选地,可以以三维数组的形式组织所述参数对象集合。
优选地,可以以二叉树的形式组织所述参数集合。
优选地,所述参数数据对象可以包括以下项目:参数名、参数值、参数的数据类型、参数的操作符。
优选地,所述查询子句表可以为散列表。
优选地,所述查询子句表可以包括子操作表格项和变量表格项。
优选地,可以通过解析查询子句表的子操作表格项,来形成第二自定义结构化查询语言子表达式;以及可以根据数据库映射,解析查询子句表的变量表格项,将第二自定义结构化查询语言子表达式转换为动态结构化查询语言语句。
本方法能够解决了带有查询条件的操作数据库的构造复杂SQL表达式问题,使用时调用基本操作的统一接口,使用一个SQL表达式就可以访问关系数据库,使用更方便、简化。
本发明提供的动态结构化查询语句的构造方法,一方面解决了进行带有查询条件的操作时,需要构造复杂SQL表达式的问题,而通过使用本发明提供的调用查询操作的统一接口,创建一个SQL表达式就可以进行关系数据库的查询操作,方便、简化了访问数据库的调用接口。另一方面,通过使用本发明提供的方法,只需要修改配置信息,就可以很容易地将要访问的数据库调整到不同的数据存储方式,而不会影响到调用者,使得应用程序从某种数据源迁移到其他种类的数据源变得异常简单和容易。将本发明提供的方法应用于联想的宽带业务支持项目中,取得了良好的效果。该项目由于使用了动态结构化查询语句的构造方法,使得开发效率大大加快,不仅实施方便,同时也减少了大部分进行数据库操作开发所需的工作量,极大地提高了工作效率,简化了项目的维护。
附图说明
下面,将参照附图,对本发明的优选实施例进行详细的描述,其中:
图1示出了用在本发明中的参数数据对象的结构;
图2示出了用在本发明中的参数对象集合的结构以及参数数据对象到参数对象集合的映射;
图3示出了用在本发明中的散列表的结构;
图4示出了用在本发明中、记录各个数据库扩展SQL表达式的结构;
图5示出了根据本发明的动态SQL语句构造方法的流程图;
图6示出了用在本发明的具体示例中的散列表的示例;以及
图7示出了用在本发明的具体示例中、记录各个数据库扩展SQL表达式的示例结构。
具体实施方式
下面结合附图对本发明作具体说明。应该指出,所描述的实施例仅是为了说明的目的,而不是对本发明范围的限制。
通常带条件的查询或删除的SQL表达式是这样表示的:SELECT(DELETE)FROM table_name WHERE condition1 andcondition2…,这里,conditonN是查询条件。在使用本发明提供的方法构造SQL表达式之前有个准备步骤,即在配置信息中指定要访问的数据库类型,目前可支持的数据库有:Oracle、SQL Server、DB2、MySQL、Sybase等。
图1示出了用在本发明中的参数数据对象的结构。如图1所示,本发明的参数数据对象包括以下属性信息:参数名、参数值、参数的数据类型(包括数据操作的基本类型)、参数的操作符(包含大于、大于等于、等于、小于、小于等于等)。这里,参数名对应查询条件中的要操作的列名,参数值对应查询列匹配要匹配的数值,参数数据类型使用本方法提供的基本类型,包括INT、VARCHAR、DATE、TIMESTAMP、FLOAT、DOUBLE等。本领域的普通技术人员应当清楚的是,以上所给出的参数数据对象的结构只是可应用于本发明的参数数据对象的结构的示例,可以根据需要,对属性信息进行任意修改、变化、改变其顺序、字节长短等,而并不偏离本发明的精神和范围。
图2示出了用在本发明中的参数对象集合的结构以及参数数据对象到参数对象集合的映射。
如图2所示,将所有参数对象映射到一个二维数据结构的集合中,这个参数集合包括了每次访问数据库操作需要的查询条件,参数集合可以包括一个或多个参数对象。同样应当清楚的是,以上所给出的参数对象集合的结构只是可应用于本发明的参数对象集合的结构的示例,可以根据需要,对所述参数对象集合的结构进行任意修改、变化、改变其顺序、字节长短等,或者可以采用三维数据结构、数结构等其他数据结构,而并不偏离本发明的精神和范围。
图3示出了用在本发明中的散列表的结构。如图所示,散列表包括子操作及与其相关的各个字段,以及变量和变量值。
图4示出了用在本发明中、记录各个数据库扩展SQL表达式的结构。根据数据库的不同,将如图3所示的散列表中的各个变量映射为相应的扩展SQL表达式。
图5示出了根据本发明的动态SQL语句构造方法的流程图。将参照图1到图5对根据本发明的动态SQL语句构造方法进行详细的描述。
首先,在步骤S401中,在配置信息中指定要访问的数据库类型,所述数据库类型可以是但并不局限于Oracle、SQL Server、DB2、MySQL、Sybase。
之后,在步骤S402中,针对所输入的每个查询条件,将其转换为如图1所示的参数数据对象。在步骤S403中,将所有查询条件映射到一个参数集合中,可以按照正序、逆序或由用户指定的顺序进行。以及在步骤S404中,将其他查询子句组合到如图3所示的一个散列表中。
然后,在步骤S405中,根据步骤S404中所得到的散列表,解析步骤S403中所得到的参数对象集合,将其转换为DSQL(DefinedStructured Query Language自定义的结构化查询语言)子表达式。
转换时,依次将参数数据对象中的参数名、参数操作符和“?”字符联接为一个子字符串。假设第一个参数数据对象中,参数名为“field1”,参数操作符为“>”,构造的参数Param1为“field1>?”;第二个参数数据对象中,参数名为“field2”,参数操作符为“=”,构造的参数Param2则为“field2=?”…。即:ParamN=参数名N参数操作符N?。
依次转换参数集合中的所有参数对象,使用关系连接符“AND”将各参数对象数据联接为一个平展查询。这样合并为一个完整的DSQL表达式:
SELECT*FROM table_name WHERE Param1 AND Param2...AND ParamN
即:
SELECT*FROM表格名称WHERE参数名1参数操作符1?AND参数名2参数操作符2?...AND参数名N参数操作符N?。
之后,在步骤S406中,判断所构造的DSQL表达式是否合理。如果不合理,则进行到步骤S415,输出错误信息并返回。
如果所构造的DSQL表达式全部合理,则进行到步骤S407,根据参数类型,再次判断DSQL表达式是否合理。依次对每个参数对象中定义的参数数据类型做进一步判断,如果不是符合规定的基本类型,则进行到步骤S415,输出错误信息并返回。如果符合,则进行到步骤S408。
在步骤S408中,根据参数的数据类型,调用相应的赋值方法,将参数数据中的参数值赋给对应的参数名上,遍历参数数据集合,完成所述赋值操作。
例如,假设第一个参数的数据类型是“VARCHAR”,则调用setString(1,参数值1)的方法,方法中“1”表示赋值参数在DSQL表达式中的位置,这里是第一个参数,“参数值1”表示给第一个参数赋字符串类型的值,第二个参数的数据类型是“DATE”,则调用setDate(2,参数值2)的方法给DSQL表达式中的第二个参数赋日期类型的值,依次将数据集合中的所有参数值对应到DSQL中的参数上。所得到的DSQL表达式为:
DSQL1=SELECT*FROM表格名称WHERE参数名1参数操作符1参数值1AND参数名2参数操作符2参数值2…AND参数名N参数操作符N参数值N
之后,在步骤S409中,解析散列表中的子操作表格项,将散列表中的查询子句添加到上述DSQL表达式中,得到:
DSQL2=SELECT*FROM表格名称WHERE参数名1参数操作符1参数值1AND参数名2参数操作符2参数值2…AND参数名N参数操作符N参数值N子操作1字段11字段12…字段1o子操作2字段21字段22…字段2p…子操作m字段m1字段m2…字段mq
然后,在步骤S410中,解析散列表中的变量表格项,根据不同的数据库,对散列表中的变量表格项进行映射,得到相应的SQL表达式。并将变量值赋予SQL表达式中的相应位置,从而得到根据各种数据库而不同的最终SQL表达式。
最后,在步骤S411中,利用所得到的SQL表达式访问目标数据库。
以下将通过具体示例对本发明的方法进行解释,从而使本领域普通技术人员能够更为确切地了解本发明。应当理解的是,所举示例只是为了进一步说明本发明的目的,而并非对本发明的限制,其中的具体参数可以根据需要而任意改变,这些是本领域普通技术人员所清楚的。
图6示出了用在此具体示例中的散列表的示例。图7示出了用在此具体示例中、记录各个数据库扩展SQL表达式的示例结构。
查询已知表名为table_name的数据表。查询条件为:查询数据表中字段名为“field1”,其值等于“string1”的数据,该字段的类型为字符串;并按照“field1”进行排序,找出结果中的第11~20项。
为了清楚起见,本示例中将对Oracle、DB2和MySQL进行对照说明:
将所述查询条件转换为以下参数数据对象:
“field1” | “string1” | “VARchar” | “=” |
为了简单起见,在此示例中只给出了一个查询条件,但应当清楚的是,所述条件可以为两个或更多。
并得到参数对象集合:
1 | “field1” | “string1” | “VARchar” | “=” |
以及如图6所示的散列表。
从而得到以下DSQL表达式:
“select*from table_name where field1=?”
判断上述DSQL合理,并根据参数数据类型再次判断上述DSQL合理,并将参数数据中的数据值赋给对应的参数名,解析散列表集合,将散列表中其他子查询语句和上述DSQL表达式组合成一个新的表达式,示例中给出了一个其他子查询子句,新的DSQL表达式如下表示:
“select*from table_name where field1=“string1”order by field1”
散列表中还有设置条件查询的起始地址fistResult和最大记录数maxResults,查询指定记录fistResult开始的maxResults条记录,则需要依据数据库类型的不同,读取图7所示的各个数据库的查询语法,在上述DSQL表达式上扩展为针对不同数据库的不同SQL表达式。
从而得到针对各个数据库的SQL表达式:
Oracle:“select*from(select row_.*,rownum rownum_from(select*from table_name where field1=“string1”order by field1)row_where rownum<=?)where rownum_>?”;
DB2:“select*from(select*from table_name where field1=“string1”order by field1)as temp_where row_between?+1 and?”;
MySQL:“select*from table_name where field1=“string1”orderby field1 limit?,?”。
然后,将firstResult和maxResults的参数值赋给对应在表达式中的位置,从而得到以下SQL表达式:
Oracle:“select*from(select row_.*,rownum rownum_from(select*from table_name where field1=“string1”order by field1)row_where rownum<=10)where rownum_>20”;
DB2:“select*from(select*from table_name where field1=“string1”order by field1)as temp_where row_between 10+1 and 20”;
MySQL:“select*from table_name where field1=“string1”orderby field1 limit 10,20”。
最后,调用上述SQL表达式访问对应的关系数据库。
尽管已经针对典型实施例示出和描述了本发明,本领域的普通技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以进行各种其他的改变、替换和添加。因此,本发明不应该被理解为被局限于上述特定实例,而应当由所附权利要求所限定。
Claims (11)
1、一种动态结构化查询语言语句的构造方法,包括以下步骤:
针对每一条查询条件,将其转换为参数数据对象,并将所述参数数据对象映射到参数对象集合中,并将其他查询子句组合到查询子句表中;
解析参数对象集合,将其转换为第一自定义结构化查询语言子表达式;
判断所构造的第一自定义结构化查询语言子表达式是否合理,如果不合理,则结束;
如果所构造的第一自定义结构化查询语言子表达式合理,则判断参数数据对象中的参数数据类型是否符合规定,如果不符合规定的基本类型,则结束;
如果符合规定,则进行赋值操作,将参数数据对象中的数据值赋予对应的参数名,并解析查询子句表,将查询子句添加到第一自定义结构化查询语言子表达式中,形成第二自定义结构化查询语言子表达式;以及
根据数据库映射,解析查询子句表,将第二自定义结构化查询语言子表达式转换为动态结构化查询语言语句。
2、根据权利要求1所述的动态结构化查询语言语句的构造方法,其特征在于以一维数组的形式组织所述参数数据对象。
3、根据权利要求1所述的动态结构化查询语言语句的构造方法,其特征在于以链表的形式组织所述参数数据对象。
4、根据权利要求1到3之一所述的动态结构化查询语言语句的构造方法,其特征在于以二维数组的形式组织所述参数对象集合。
5、根据权利要求1到3之一所述的动态结构化查询语言语句的构造方法,其特征在于以三维数组的形式组织所述参数对象集合。
6、根据权利要求1到3之一所述的动态结构化查询语言语句的构造方法,其特征在于以二叉树的形式组织所述参数集合。
7、根据权利要求1所述的动态结构化查询语言语句的构造方法,其特征在于所述参数数据对象包括以下项目:参数名、参数值、参数的数据类型、参数的操作符。
8、根据权利要求1所述的动态结构化查询语言语句的构造方法,其特征在于所述查询子句表为散列表。
9、根据权利要求4到6之一所述的动态结构化查询语言语句的构造方法,其特征在于所述查询子句表为散列表。
10、根据权利要求1所述的动态结构化查询语言语句的构造方法,其特征在于所述查询子句表包括子操作表格项和变量表格项。
11、根据权利要求10所述的动态结构化查询语言语句的构造方法,其特征在于通过解析查询子句表的子操作表格项,来形成第二自定义结构化查询语言子表达式;以及根据数据库映射,解析查询子句表的变量表格项,将第二自定义结构化查询语言子表达式转换为动态结构化查询语言语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100763244A CN100464329C (zh) | 2005-06-14 | 2005-06-14 | 动态结构化查询语言语句的构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100763244A CN100464329C (zh) | 2005-06-14 | 2005-06-14 | 动态结构化查询语言语句的构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1881208A true CN1881208A (zh) | 2006-12-20 |
CN100464329C CN100464329C (zh) | 2009-02-25 |
Family
ID=37519412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100763244A Expired - Fee Related CN100464329C (zh) | 2005-06-14 | 2005-06-14 | 动态结构化查询语言语句的构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100464329C (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100437587C (zh) * | 2006-12-31 | 2008-11-26 | 华为技术有限公司 | 一种基于数据库的业务处理方法及装置 |
CN100456237C (zh) * | 2007-01-31 | 2009-01-28 | 华为技术有限公司 | 数据库访问方法和装置 |
CN101206654B (zh) * | 2006-12-22 | 2010-04-14 | 英业达股份有限公司 | 具智能查询能力的数据库查询系统与方法 |
CN101425117B (zh) * | 2008-12-09 | 2010-12-22 | 阿里巴巴集团控股有限公司 | 一种构造sql语句的方法及装置 |
CN101388763B (zh) * | 2007-09-12 | 2011-02-02 | 北京启明星辰信息技术股份有限公司 | 一种支持多种数据库类型的sql注入攻击检测系统 |
CN101425937B (zh) * | 2007-11-02 | 2011-07-20 | 北京启明星辰信息技术股份有限公司 | 一种适于高速局域网环境的sql注入攻击检测系统 |
CN101246486B (zh) * | 2007-02-13 | 2012-02-01 | 国际商业机器公司 | 用于改进的表达式处理的方法和装置 |
CN102354318A (zh) * | 2011-09-22 | 2012-02-15 | 用友软件股份有限公司 | 减少数据库系统中即席查询语句的装置和方法 |
CN102779044A (zh) * | 2012-06-28 | 2012-11-14 | 用友软件股份有限公司 | 表达式的解析处理系统和解析处理方法 |
CN103631775A (zh) * | 2012-08-21 | 2014-03-12 | 镇江雅迅软件有限责任公司 | 一种可配置的数据采集方法 |
CN104679903A (zh) * | 2015-03-20 | 2015-06-03 | 亚信科技(南京)有限公司 | 一种数据表的操作方法及装置 |
CN101606154B (zh) * | 2007-02-05 | 2016-09-28 | 微软技术许可有限责任公司 | 允许元素类型的类型流的查询模式 |
CN107169130A (zh) * | 2017-06-08 | 2017-09-15 | 贵州优联博睿科技有限公司 | 一种数据库的可视化查询方法及系统 |
CN108256080A (zh) * | 2018-01-19 | 2018-07-06 | 深圳市富途网络科技有限公司 | 一种利用python语法语义构建复杂sql语句的方法及系统 |
CN108701153A (zh) * | 2016-02-25 | 2018-10-23 | 微软技术许可有限责任公司 | 使用到参数化报告的映射的查询响应 |
CN109492383A (zh) * | 2018-11-09 | 2019-03-19 | 四川长虹电器股份有限公司 | 一种数据权限的解析方法 |
CN109783702A (zh) * | 2018-12-27 | 2019-05-21 | 国网上海市电力公司 | 一种基于二叉树的字符串表达式计算方法及装置 |
CN110555030A (zh) * | 2018-03-28 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 一种sql语句的处理方法和装置 |
CN110858202A (zh) * | 2018-08-21 | 2020-03-03 | 北京京东尚科信息技术有限公司 | 数据库查询语句中where子句的生成方法和生成装置 |
CN110866029A (zh) * | 2019-10-11 | 2020-03-06 | 支付宝(杭州)信息技术有限公司 | sql语句构建方法、装置、服务器及可读存储介质 |
CN112035510A (zh) * | 2020-08-28 | 2020-12-04 | 中电长城(长沙)信息技术有限公司 | 一种信息系统复杂数据查询方法及系统 |
CN112241416A (zh) * | 2020-10-16 | 2021-01-19 | 四川长虹电器股份有限公司 | 一种利用python语法语义构建复杂sql语句的系统及方法 |
CN113111079A (zh) * | 2021-04-13 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 一种数据库执行语句生成方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004126680A (ja) * | 2002-09-30 | 2004-04-22 | Fujitsu Ltd | Sql隠蔽型データベースアクセス方法及びコンピュータプログラム |
CN1282111C (zh) * | 2003-05-15 | 2006-10-25 | 中兴通讯股份有限公司 | 一种跨平台数据库查询方法 |
US7831614B2 (en) * | 2003-07-11 | 2010-11-09 | Computer Associates Think, Inc. | System and method for generating SQL using templates |
US20050102284A1 (en) * | 2003-11-10 | 2005-05-12 | Chandramouli Srinivasan | Dynamic graphical user interface and query logic SQL generator used for developing Web-based database applications |
CN1307585C (zh) * | 2003-12-31 | 2007-03-28 | 中兴通讯股份有限公司 | 一种用于实现数据库多表查询的数据处理方法 |
-
2005
- 2005-06-14 CN CNB2005100763244A patent/CN100464329C/zh not_active Expired - Fee Related
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206654B (zh) * | 2006-12-22 | 2010-04-14 | 英业达股份有限公司 | 具智能查询能力的数据库查询系统与方法 |
CN100437587C (zh) * | 2006-12-31 | 2008-11-26 | 华为技术有限公司 | 一种基于数据库的业务处理方法及装置 |
CN100456237C (zh) * | 2007-01-31 | 2009-01-28 | 华为技术有限公司 | 数据库访问方法和装置 |
CN101606154B (zh) * | 2007-02-05 | 2016-09-28 | 微软技术许可有限责任公司 | 允许元素类型的类型流的查询模式 |
CN101246486B (zh) * | 2007-02-13 | 2012-02-01 | 国际商业机器公司 | 用于改进的表达式处理的方法和装置 |
CN101388763B (zh) * | 2007-09-12 | 2011-02-02 | 北京启明星辰信息技术股份有限公司 | 一种支持多种数据库类型的sql注入攻击检测系统 |
CN101425937B (zh) * | 2007-11-02 | 2011-07-20 | 北京启明星辰信息技术股份有限公司 | 一种适于高速局域网环境的sql注入攻击检测系统 |
CN101425117B (zh) * | 2008-12-09 | 2010-12-22 | 阿里巴巴集团控股有限公司 | 一种构造sql语句的方法及装置 |
CN102354318A (zh) * | 2011-09-22 | 2012-02-15 | 用友软件股份有限公司 | 减少数据库系统中即席查询语句的装置和方法 |
CN102354318B (zh) * | 2011-09-22 | 2013-09-11 | 用友软件股份有限公司 | 减少数据库系统中即席查询语句的装置和方法 |
CN102779044A (zh) * | 2012-06-28 | 2012-11-14 | 用友软件股份有限公司 | 表达式的解析处理系统和解析处理方法 |
CN102779044B (zh) * | 2012-06-28 | 2016-01-20 | 用友软件股份有限公司 | 表达式的解析处理系统和解析处理方法 |
CN103631775A (zh) * | 2012-08-21 | 2014-03-12 | 镇江雅迅软件有限责任公司 | 一种可配置的数据采集方法 |
CN104679903A (zh) * | 2015-03-20 | 2015-06-03 | 亚信科技(南京)有限公司 | 一种数据表的操作方法及装置 |
CN104679903B (zh) * | 2015-03-20 | 2018-02-13 | 亚信科技(南京)有限公司 | 一种数据表的操作方法及装置 |
CN108701153A (zh) * | 2016-02-25 | 2018-10-23 | 微软技术许可有限责任公司 | 使用到参数化报告的映射的查询响应 |
CN108701153B (zh) * | 2016-02-25 | 2022-04-26 | 微软技术许可有限责任公司 | 响应自然语言查询的方法、系统和计算机可读存储介质 |
CN107169130A (zh) * | 2017-06-08 | 2017-09-15 | 贵州优联博睿科技有限公司 | 一种数据库的可视化查询方法及系统 |
CN108256080A (zh) * | 2018-01-19 | 2018-07-06 | 深圳市富途网络科技有限公司 | 一种利用python语法语义构建复杂sql语句的方法及系统 |
CN110555030B (zh) * | 2018-03-28 | 2024-06-18 | 北京京东尚科信息技术有限公司 | 一种sql语句的处理方法和装置 |
CN110555030A (zh) * | 2018-03-28 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 一种sql语句的处理方法和装置 |
CN110858202A (zh) * | 2018-08-21 | 2020-03-03 | 北京京东尚科信息技术有限公司 | 数据库查询语句中where子句的生成方法和生成装置 |
CN109492383B (zh) * | 2018-11-09 | 2022-02-01 | 四川长虹电器股份有限公司 | 一种数据权限的解析方法 |
CN109492383A (zh) * | 2018-11-09 | 2019-03-19 | 四川长虹电器股份有限公司 | 一种数据权限的解析方法 |
CN109783702A (zh) * | 2018-12-27 | 2019-05-21 | 国网上海市电力公司 | 一种基于二叉树的字符串表达式计算方法及装置 |
CN110866029A (zh) * | 2019-10-11 | 2020-03-06 | 支付宝(杭州)信息技术有限公司 | sql语句构建方法、装置、服务器及可读存储介质 |
CN110866029B (zh) * | 2019-10-11 | 2022-08-09 | 支付宝(杭州)信息技术有限公司 | sql语句构建方法、装置、服务器及可读存储介质 |
CN112035510A (zh) * | 2020-08-28 | 2020-12-04 | 中电长城(长沙)信息技术有限公司 | 一种信息系统复杂数据查询方法及系统 |
CN112035510B (zh) * | 2020-08-28 | 2023-12-19 | 中电长城(长沙)信息技术有限公司 | 一种信息系统复杂数据查询方法及系统 |
CN112241416A (zh) * | 2020-10-16 | 2021-01-19 | 四川长虹电器股份有限公司 | 一种利用python语法语义构建复杂sql语句的系统及方法 |
CN113111079A (zh) * | 2021-04-13 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 一种数据库执行语句生成方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100464329C (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1881208A (zh) | 动态结构化查询语言语句的构造方法 | |
US10846285B2 (en) | Materialization for data edge platform | |
CN1146820C (zh) | 数据库管理系统的动态修改 | |
US7577637B2 (en) | Communication optimization for parallel execution of user-defined table functions | |
US11593323B2 (en) | Parallel and efficient technique for building and maintaining a main memory CSR based graph index in a RDBMS | |
US6915291B2 (en) | Object-oriented query execution data structure | |
US20010016843A1 (en) | Method and apparatus for accessing data | |
EP1457878B1 (en) | Automatic generation of an object model from a dimensional model | |
US20070027849A1 (en) | Integrating query-related operators in a programming language | |
CN1740978A (zh) | 实现共享内存数据库的方法及内存数据库系统 | |
CN1904885A (zh) | 数据库适配器 | |
CN1564160A (zh) | 建立及查询多维数据立方体的方法 | |
CN101046810A (zh) | 自动建立关系模型的系统及其方法 | |
US20180004782A1 (en) | Dynamic modeling of data in relational databases | |
CN1848851A (zh) | 创建轻量目录访问协议数据交换格式片段的方法与计算机 | |
CN104615713A (zh) | 一种基于多数据库类型的sql执行方法和装置 | |
US8639717B2 (en) | Providing access to data with user defined table functions | |
CN1645372A (zh) | 一种实时内存数据库通用约束的实现方法 | |
US7860879B2 (en) | SMO scripting optimization | |
Song et al. | Haery: a Hadoop based query system on accumulative and high-dimensional data model for big data | |
CN1825306A (zh) | 基于关系数据库的xml数据存储与访问方法 | |
US6618720B1 (en) | Common spool files for maintaining join indexes | |
CN101359324A (zh) | 基于程序调用接口的Oracle关系数据库的数据访问方法 | |
CN101076055A (zh) | 话单格式转换的方法 | |
Sheng et al. | Dynamic top-k range reporting in external memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170510 Address after: 100055 Beijing, Guang'an, No. 305 Xicheng District street, No. two, building 10, floor 9, floor 1112 Patentee after: New venture (Beijing) Consulting Service Co., Ltd. Address before: 100085 Beijing on the road to entrepreneurship, No. 6 Haidian District Patentee before: Lenovo (Beijing) Co., Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090225 Termination date: 20170614 |
|
CF01 | Termination of patent right due to non-payment of annual fee |