以前做人口数据库时经常写些比较长的SQL语句,最长至上百行,看懂也得半天,恰巧在项目中遇见需要提取其中的条件子句,那时对正则也研究了一下,所以就顺便用正则写了个SQL语句分析、校验工具。正则表达式一般用在验证模式中,但个人认为验证只是正则的功能之一,在文本数据处理中才能发挥它的真正作用。利用正则表达式校验分析SQL语句,对于日常开发中,可能有简单问题复杂化之嫌,但这属于一个学习SQL和正则的绝佳机会。 【问题】先提出一个很简单的问题:如何提取Select语句中的使用的表和字段,以及过滤条件? selectcount(distinct pis_p_renk_1.sysid) asresult,
pis_p_renk.juzhd as address,
pis_p_guanlshx.guanlshx as guanlshx,
pis_p_renk.hukxzh as hukxzh
from pis_p_renk,
pis_p_guanlshx,
pis_p_zhuxyy,
pis_p_zinshx,
pis_p_guanx,
pis_p_renk as pis_p_renk_1
where pis_p_renk.sysid = pis_p_guanlshx.renkid
and pis_p_renk.sysid = pis_p_zhuxyy.renkid
and pis_p_renk_1.sysid = pis_p_guanx.renkid
and pis_p_renk.sysid = pis_p_guanx.guanxrid
and pis_p_guanx.sysid = pis_p_zinshx.guanxid
and pis_p_guanx.guanxlx = '2'
and pis_p_renk_1.xingb = '2'
and substr(pis_p_renk.chushrq, 1, 6) between substr('@StartTime', 1, 6) and
substr('@EndTime', 1, 6)
and pis_p_guanlshx.dangq = '1'
and (pis_p_guanlshx.guanlshxbdshj = ''or
pis_p_guanlshx.guanlshxbdshj isnullor
pis_p_guanlshx.guanlshxbdshj isnullor
substr(pis_p_guanlshx.guanlshxbdshj, 1, 6) 正则表达式,再将细粒度合成粗粒度部分,最后组成完整正则表达式,可以校验语句,在正则捕获中可以获取各组成部分。
SQL正则构建工具:用于粗粒度、细粒度正则匹配。
SQL语句分析工具:分析SQL语句各组成部分。
(二)语句构造粗粒度分析(待续)
(三)细粒度正则匹配
(四)完整正则表达式搭建
(五)SQL正则分析过程
分享到:
相关推荐
Java正则表达式构造SQL语句Java正则表达式构造SQL语句Java正则表达式构造SQL语句
1. 正则表达式的基本语法和使用,特别是如何构建匹配SQL语句的正则模式。 2. 如何在代码中应用正则表达式进行文本匹配。 3. SQL的常见关键字和结构,理解这些对于构建有效的正则表达式至关重要。 4. 源码分析,如何...
这些资源可能涵盖具体的SQL查询语法、正则表达式的模式构造、C#代码示例以及如何结合两者进行文本解析。 总之,理解和掌握SQL语法分析以及正则表达式的使用,对于任何IT专业人士,尤其是从事数据库管理和软件开发的...
模仿SQL语句的正则表达式练习,是我学习正则表达式过程中,对字符串经常sql语句匹配,达到练习正则表达式的目的。语句中包括了,"创建超级用户权限,"*.*"代表数据库里的所有数据,"root"代表超级用户名称,"%"代表...
通过使用正则表达式,可以简化上述例子中的SQL查询语句。例如,同样的查询可以使用如下语句完成: ```sql SELECT * FROM Tablel WHERE name REGEXP '^[ABCD].*P$'; ``` 这里,`REGEXP`是正则表达式的SQL谓词,`'^...
正则表达式,在SQL Server 2005中作为一种强大的文本处理工具,极大地增强了数据库处理复杂文本数据的能力。传统的T-SQL虽然在处理数据方面表现卓越,但在文本分析和操作上显得力不从心,尤其是在执行复杂的文本分析...
本文将深入探讨SQL修改表语句以及正则表达式在数据处理中的应用。 **SQL修改表语句** SQL修改表语句允许我们动态地更新数据库中的表结构,以便适应业务需求的变化。以下是一些常见的SQL命令: 1. **添加列 (ALTER...
正则表达式(Regular Expression)是一种强大的文本处理工具,可以用来匹配、查找、替换等操作,包括匹配SQL中的注释语句。在本文中,我们将探讨如何使用正则表达式有效地匹配T-SQL(Transact-SQL)中的注释。 首先...
通过组合这些正则表达式,我们可以构建一个完整的解析器来处理各种复杂的SQL语句。此外,还需要考虑到SQL语句可能存在大小写不一致的问题,因此在实际应用中可能还需要对输入的SQL语句进行一定的预处理,比如统一...
MySQL的UPDATE语句用于修改表中的数据,当我们需要根据复杂的条件来更新记录时,可以利用正则表达式(REGEXP)来指定匹配模式。在MySQL中,可以使用REGEXP和RLIKE操作符来实现正则表达式匹配。 首先,来看一个简单...
在"Java源代码案例 - 使用正则表达式解析sql语法树.zip"这个压缩包中,我们可以推测包含了一个使用Java实现的SQL语句解析器,可能通过正则表达式解析SQL语句的语法结构。 在SQL(Structured Query Language)中,...
MySQL支持通过`REGEXP`操作符来进行正则表达式的匹配,这对于复杂的数据查询和模式匹配非常有用。如果你熟悉PHP或Perl等语言中的正则表达式,那么在MySQL中使用它们会相对容易上手。 #### 三、正则表达式基本语法 ...
写出匹配SQL语句中的所有表名,备忘记录 折磨了好久,正则表达式如下: 代码如下: \*\s+from\s+[\w\[\]]*\.?[\w\[\]]*\.?\[?(\b\w+)\]?[\r\n\s]* 支持各种表达式 SELECT * FROM Config SELECT * FROM
使用正则表达式可以编写简洁、强大的 SQL 语句,提高数据处理的效率和灵活性。熟练使用正则表达式可以帮助用户快速搜索、替换和验证数据,并提供高度的灵活性。 在 Oracle 数据库中,正则表达式的应用非常广泛,...
本压缩包集合了多种API文档,包括Ajax、jQuery、正则表达式、SQL以及JDK 1.7的相关内容,对于学习和提升IT技能大有裨益。 首先,我们来看`jQuery文档.chm`,jQuery是一个轻量级、高性能的JavaScript库,它简化了...
在编写代码工具或进行代码清理时,处理SQL语句的格式化问题是一个常见的需求。...通过上述的知识点,我们可以更加深入地理解和掌握如何使用Java正则表达式来处理SQL语句的格式化问题,从而提升代码质量与维护效率。
本主题聚焦于利用C#的正则表达式功能来从网页中提取数据,并将其存储到SQL Server 2005数据库。下面将详细阐述这一过程中的关键知识点。 一、正则表达式(Regular Expression) 正则表达式是一种强大的文本处理工具...
ORACLE中的正则表达式的使用 动态执行SQL语句 动态创建游标 游标的创建方式 ORACLE循环操作 for循环 loop循环 while循环 判断操作