如何实现一个 sql 解析器

接到一个需求,有些懵了 。

需求:
  • mysql, Oracle, PostgreSQL, Redis 这几个db 要求对他们的查询语言检查,检查出访问哪些表和对应的字段。

一开始想了一个简单地方法 ,用sql中的关键字 加上可以访问的 表名 和字段 组成允许运行语句中满足的单词,超出的单词作为不符合sql语句,没有想到自己想简单了。 在网上找到了一个满意的工具 http://www.sqlparser.com/ ,但是不会java 和其他的 。希望能得到些建议,这个解析原理自己都一下子都想不通,如果建议用LEX ,yacc这类工具做得话就麻烦提供下 可参考案例吧。

颜⑧
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2
leo
7年前 评论
颜⑧

@leo 看过 没有用,里面子查询 就不行。。。 ,试过后瞬间没有信心了。

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!