sql查询树结构

更新时间:02-01 教程 由 罪念 分享

文法解析的话可以搜索SQLparser一类的工具,像Python就有sqlparse。

Parse得到的结果是SQL的结构语法树,而对应的语义需要自己定义,即每棵树相应语句结构如何遍历解释,是执行运算或者是生成目标代码。

你的情况下目标代码就是你们的内部语言。

除了使用parser库之外,也可以参考Antlr。Antlr是一套通用完整的语言解释工具,支持各种自定义文法模板。

比如你可以基于Antlr下载一套标准SQL的文法模板文件,然后给语句规则填写对应的解释逻辑(执行运算或生成代码)即可,相当于声明式地定制了一个解释器。

基于Antlr之类的程序优点是标准化、易维护,缺点是处理上下文的灵活性不如基于parser库的原生程序。

不论哪种方法,如果你们内部语言有解释器API的话,直接在语句解释时调用API,可省去目标代码这一环,相当于用你们的内部库实现一个SQL解释器。理论的话可以参考虎书。

声明:关于《sql查询树结构》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2104418.html