[发明专利]复杂SQL语句的生成方法无效

专利信息
申请号: 201110163280.4 申请日: 2011-06-16
公开(公告)号: CN102222097A 公开(公告)日: 2011-10-19
发明(设计)人: 刘文洁;李战怀;周云涛;张晓 申请(专利权)人: 西北工业大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 西北工业大学专利中心 61204 代理人: 王鲜凯
地址: 710072 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种复杂SQL语句的生成方法,用于解决现有的SQL语句的生成方法不能生成根据组合关键字的复杂SQL语句的技术问题。技术方案是以Postgres数据库测试集为基础,通过对SQL关键字分类、组合、设计基础SQL语句和生成方法,来根据用户指定的关键字自动生成复杂的SQL语句,可以生成根据组合关键字的复杂SQL语句。这些语句可以直接应用于数据库系统的测试过程,解决手工编写组合关键字的SQL语句出错率高,效率低的问题。
搜索关键词: 复杂 sql 语句 生成 方法
【主权项】:
一种复杂SQL语句的生成方法,其特征在于采用以下步骤:(a)构建基础SQL语句:select*from t1;(1)select id from t1 where id=1;(2)select distinct id,name from t1 where id>=1order by id;(3)select count(id),sum(id),avg(id),max(id),min(id)from t1 group by name having count(id)>0order by id;(4)select*from t1,t2;(5)select*from t1 natural join t2 on t1.id=t2.id;(6)select*from t1 join t2 using(id);(7)select*from t1 left outer join t2 using(id);(8)select*from t1 right outer join t2 using(id);(9)select*from t1 where id=(select id from t1 where id=1);(10)(b)构建SQL关键字列表KeyWordsList和SQL语句列表SQLList:KeyWordsList={用户指定的组合SQL关键字},SQLList={};(c)关键字分组,关键字按照匹配原则归属于四个组:单表查询={with,select,distinct,as,from,where,group by,having,order by,limit,offset,sum,count,min,max,avg};多表连接查询={natural,join,on,using};多表交、并、差集查询={intersect,union,except,};子查询={select,from,where,select};(d)对于单表查询,根据输入关键字从基础SQL语句(1)~(4)中查找包含特定关键字的语句加入SQLList,关键字列表减去生成语句中包含的SQL语句,执行步骤(i);(e)对于多表连接查询,执行下面流程生成SQL语句,加入SQLList,关键字列表减去生成语句中包含的SQL语句,执行步骤(i);step1:计算连接关键字个数N,根据输入关键字从自定义基础SQL语句(5)~(9)中选择包含指定关键字的SQL语句;step2:如果是N=1,直接返回该语句,否则进入step3;step3:删除基础SQL语句后分号,加空格,复制从基础SQL语句连接关键字开始至语句末尾的SQL语句并添加到空格后,N‑1;step4:如果N=1,添加分号,返回SQL;如果不是,返回step3;(f)对于多表交、并、差集查询,执行下面流程生成SQL语句,加入SQLList,关键字列表减去生成语句中包含的SQL语句,执行步骤(i);step1:计算连接关键字个数N,取得自定义基础SQL(1);step2:添加交,并,差关键字,N‑1;step3:添加自定义基础SQL(1);step4:如果N=0,添加分号,返回SQL;如果不是,返回step2;(g)对于子查询的SQL语句,继续如下步骤,生成SQL语句加入SQLList,关键字列表减去生成语句中包含的SQL语句,执行步骤(i);step1:计算子查询级数N,取得自定义基础SQL(10);step2:查找第一个id=1的位置,删除1,添加“()”,将(2)插入括号内,N‑1;step3:如果N=0,返回SQL;如果不是,返回step2;(h)如果关键字不在基础SQL语句中包含,从Postgres测试集合中挑选匹配的SQL语句加入SQLList,执行步骤(i);(i)如果KeyWordsList为空,过程结束,返回SQLList;否则继续处理下一个分组。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201110163280.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top