当前位置: 首页 > news >正文

如何通过‘语法配置’来‘解析SQL’代码

开源软件 ZGLanguage 通过语法配置,便可以对SQL代码进行解析,如下所示。

当然,不同数据库之间会存在不同的语法特点或方言。

此语法配置实例只囊括了常见的SQL语法结构,用户可以在此基础上根据具体情况进行修改使用。

__DEF_FUZZY__ N __DEF_DEBUG__ N __DEF_CASE_SENSITIVE__ N __DEF_LINE_COMMENT__ -- __DEF_LINES_COMMENT__ /* */ __DEF_STR__ __NAME__ <1,100> [1,1]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_?? [0,100]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_?? [NO] select inner left join on from where group order by having union all with as table __DEF_STR__ __FLOAT__ <1,100> [1,50]0123456789 [1,1]. [1,50]0123456789 __DEF_STR__ __INT__ <1,100> [1,100]0123456789 __DEF_SUB_PATH__ __STRING__ 1 : | ' : | __ANY__ : | ' __DEF_SUB_PATH__ __DATE_STRING__ 1 : | date : | __STRING__ __DEF_SUB_PATH__ __VAR_NAME__ 1 : | $ : | { : | __NAME__ : | } __DEF_SUB_PATH__ __CASE_WHEN__ 1 : @ | case N : @ | when : @ | __EXPR__ : @ | then : @ | __EXPR__ 1 : @ CAN_SKIP | else : @ CAN_SKIP | __EXPR__ : @ | end __DEF_SUB_PATH__ __DECIMAL__ 111 : | decimal 0 : | ( 01 : | __INT__ 00 : | , 00 : | __INT__ 01 : | ) __DEF_SUB_PATH__ __X_CHAR__ 11 : | varchar : + nvarchar : + char : + varchar2 : + nvarchar2 0 : | ( 0 : | __INT__ 0 : | ) __DEF_SUB_PATH__ __CAST_AS__ 1 : | cast : | ( 1 : | __EXPR__ : | as : | date : + int : + double : + float : + bigint : + __X_CHAR__ : + __DECIMAL__ 1 : | ) __DEF_SUB_PATH__ __FUNCTION__ 11 : @ | __NAME__ : @ + sum : @ + avg : @ + ifnull : @ + coalesce : @ + count : @ + row_number : @ + rank : @ + dense_rank : @ | ( : @ CAN_SKIP | distinct NN : @ CAN_SKIP | __EXPR__ ee : @ CAN_SKIP | , 11 : @ | ) 0 : @ | over 0 : @ | ( 0 : @ CAN_SKIP | __PARTITION_BY__ 0 : @ CAN_SKIP | __ORDER_BY__ 0 : @ | ) __DEF_SUB_PATH__ __SET__ 1 : | ( N : | __STRING__ : + __INT__ : + __FLOAT__ e : | , 1 : | ) __DEF_EXPR__ __EXPR__ __ELE__ null __ELE__ * __ELE__ __NAME__ __ELE__ __INT__ __ELE__ __FLOAT__ __ELE__ __DATE_STRING__ __ELE__ __CASE_WHEN__ __ELE__ __STRING__ __ELE__ __SET__ __ELE__ __CAST_AS__ __ELE__ __FUNCTION__ __OPR__ between 1 __OPR__ and 1 __OPR__ or 1 __OPR__ like 2 __OPR__ = 2 __OPR__ <> 2 __OPR__ != 2 __OPR__ > 2 __OPR__ >= 2 __OPR__ < 2 __OPR__ <= 2 __OPR__ in 2 __OPR__ not in 2 __OPR__ + 3 __OPR__ - 3 __OPR__ * 4 __OPR__ / 4 __OPR__ || 4 __OPR__ . 7 __//__ __BEF__ not exists __//__ __BEF__ exists __BEF__ - __BEF__ + __AFT__ is null __AFT__ is not null __DEF_SUB_PATH__ __TABLE_NAME__ 1 : xx @ | __NAME__ + : x1 @ | __VAR_NAME__ : x2 @ + __NAME__ : x3 @ | . : x4 @ | __NAME__ 1 : x5 @ CAN_SKIP | as : x6 @ CAN_SKIP | __NAME__ __DEF_SUB_PATH__ __WHERE__ 1 : | where N : | __EXPR__ : + __EXISTS_SELECT__ e : | and __DEF_SUB_PATH__ __GROUP_BY__ 11 : | group : | by NN : | __EXPR__ ee : | , 01 : | having 0 : | __EXPR__ __DEF_SUB_PATH__ __ORDER_BY__ 1 : @ | order : @ | by N : @ | __EXPR__ : @ CAN_SKIP | desc : @ + asc e : @ | , __DEF_SUB_PATH__ __PARTITION_BY__ 1 : | partition : | by N : | __EXPR__ e : | , __DEF_SUB_PATH__ __DISTRIBUTED_BY__ 1 : | distributed : | by : | ( N : | __EXPR__ e : | , 1 : | ) __DEF_SUB_PATH__ __SUB_SELECT__ 1 : @ | ( : @ | __UNION_SELECT__ : @ | ) : @ CAN_SKIP | as : @ CAN_SKIP | __NAME__ __DEF_SUB_PATH__ __EXISTS_SELECT__ 01 : | NOT 1 : | EXISTS : | ( : | __SELECT__ : | ) __DEF_SUB_PATH__ __ON_AND__ 1 : | on N : | __EXPR__ e : | and __DEF_SUB_PATH__ __JOIN_TABLE__ 11 : | join ++ : | inner : | join ++ : | left : | join ++ : | left : | out : | join ++ : | right : | join ++ : | right : | join ++ : | right : | out : | join ++ : | full : | join ++ : | full : | out : | join ++ : | , 11 : | __TABLE_NAME__ : + __SUB_SELECT__ 01 : | __ON_AND__ __DEF_SUB_PATH__ __SELECT__ 11 : @ | select : @ CAN_SKIP | distinct NN : @ | __EXPR__ : @ CAN_SKIP | as : @ CAN_SKIP | __NAME__ ee : @ | , 01 : @ | from 0 : @ | __TABLE_NAME__ : @ + __SUB_SELECT__ 0N : @ CAN_SKIP | __JOIN_TABLE__ 01 : @ CAN_SKIP | __WHERE__ 0 : @ CAN_SKIP | __GROUP_BY__ 0 : @ CAN_SKIP | __ORDER_BY__ 0 : @ CAN_SKIP | __DISTRIBUTED_BY__ __DEF_SUB_PATH__ __UNION_SELECT__ 1 : | __SELECT__ N : @ CAN_SKIP | union : @ CAN_SKIP | all : @ CAN_SKIP | __SELECT__ __DEF_PATH__ __SQL_SELECT__ 1 : | __UNION_SELECT__ : | ; __DEF_PATH__ __SQL_CREATE_VIEW__ 1 : | create : | view 1 : | __NAME__ + : | __NAME__ : | . : | __NAME__ + : | __VAR_NAME__ : | . : | __NAME__ 1 : | as : | __SELECT__ : | ; __DEF_PATH__ __SQL_CREATE_TABLE__ 1 : | create 1 : | table + : | temp : | table 1 : | __NAME__ + : | __NAME__ : | . : | __NAME__ + : | __VAR_NAME__ : | . : | __NAME__ 1 : | as : | __SQL_SELECT__ : + __WITH_AS_SELECT__ __DEF_PATH__ __SQL_INSERT_INTO__ 11 : | insert : | into 11 : | __NAME__ ++ : | __NAME__ : | . : | __NAME__ ++ : | __VAR_NAME__ : | . : | __NAME__ 01 : | ( 0N : | __NAME__ 0e : | , 01 : | ) 1 : | __SQL_SELECT__ : + __WITH_AS_SELECT__ __DEF_PATH__ __WITH_AS_SELECT__ 11 : @ | with : @ | __NAME__ : @ | as : @ | ( : @ | __UNION_SELECT__ : @ + __WITH_AS_SELECT__ : @ | ) 0N : @ | , 0 : @ | __NAME__ 0 : @ | as 0 : @ | ( 0 : @ | __UNION_SELECT__ : @ + __WITH_AS_SELECT__ 0 : @ | ) 11 : @ | __UNION_SELECT__ : @ | ;

ZGLanguage 的开源地址:

https://gitee.com/zgl-20053779/zglanguage

http://www.rkmt.cn/news/109050.html

相关文章:

  • 29、网络文件系统(NFS)的锁管理与性能分析
  • 零工风险如何“防患于未然”?盖雅AI风控与四流合一体系深度解析
  • 职业迷茫与协议化服务助力发展
  • 建筑与装饰工程招标控制价编制——以蒲江县朝阳社区幼儿园为例(任务书)
  • 详解NVIDIA TensorRT层融合技术对吞吐量的提升效果
  • 换同义词真的没用!深扒知网AIGC检测原理,实测3款降ai率工具,谁能稳过检测?
  • 炸裂!从纯噪声到神级画作,只需几秒?扩散模型 + DALL·E 的黑魔法,全在这里揭秘了!
  • 如何在Ubuntu上安装PaddlePaddle并配置CUDA加速(附完整docker安装教程)
  • 2025年热门的精品礼盒印刷/包装礼盒印刷专业口碑排行榜 - 品牌宣传支持者
  • PaddlePaddle视觉套件PaddleDetection安装包获取与diskinfo下载官网替代方案
  • Excalidraw如何嵌入网页?Three.js开发者必看集成方案
  • 光伏发电中的“安全阀”:解读数据中心防逆流控制技术
  • 41、Linux 系统管理与操作实用技巧
  • UOS(linux) 查看 nginx 配置站点的详情信息
  • 一文带你认识护网行动是什么?参加需要具备哪些条件?
  • 2025 公考选机构?上考教育深度科普:优势、靠谱性与适配人群 - 品牌推荐排行榜
  • 2025年比较好的V2两节阻尼托底轨厂家推荐及选购指南 - 品牌宣传支持者
  • 2025年靠谱的新能源驻车加热通风管设备/单层驻车加热通风管设备优质厂家推荐榜单 - 品牌宣传支持者
  • 2025 年 12 月 EL检测仪权威推荐榜:光伏组件隐裂精准诊断,高效运维必备神器深度解析 - 品牌企业推荐师(官方)
  • vlan间通信之vlanif虚接口、vlan聚合 - 教程
  • 查看Gmail 的注册地区
  • 2025年亚崴龙门靠谱生产商五大榜单,工业制造伙伴精选指南 - mypinpai
  • 快速上手Umo Editor:零配置的Vue3文档编辑器解决方案
  • MSBuild BuildCheck框架:构建时代码质量检查的完整指南
  • 国内电机轴承厂家权威推荐 精密角接触球轴承/铜保持架/铁保持架/胶木保持架/尼龙保持架/双面密封/液压泵/水泵/油泵轴承选择指南 - 小张666
  • 免费商用字体资源库:设计师必备的字体宝典
  • 2025值得入手的细胞计数仪品牌盘点/荧光细胞计数仪/高通量细胞计数仪推荐 - 品牌推荐大师1
  • 2025 上考教育深度解析:公考培训靠谱吗?押题准度如何? - 品牌推荐排行榜
  • 7、Unix系统上Samba安装与配置全攻略
  • 5大实战技巧:彻底解决Apache Weex渲染性能瓶颈