sql - 是否有可用于 SQL 的 BNF 语法?
问题描述
我宁愿不自己创建语法。我确实下载了一个“语法”,但它是用 ANTLR 或 Yacc 的非标准形式编写的,它包含词法分析器语句。我需要一些时间来将两者分开并为解析器生成器介绍正确的语法。
解决方案
有很多 SQL 语法适用于解析器生成器,因为大多数 SQL 处理器使用解析器生成器来生成它们的解析器。这些可能会也可能不会满足您的需求,具体取决于您感兴趣的 SQL 方言以及您计划使用的解析器生成器。
这里有一些例子。这些都取自各自数据库的官方代码存储库,我认为这避免了避免资源请求的“基于意见”的标准。互联网上也散布着许多非官方的语法,尤其是在 Github 上,但并非所有语法都是正确或可用的。
推荐阅读
- postgresql - PostgreSQL多列索引最佳实践?
- r - 使用 facet_wrap 时更改多个 y 比例
- python - 如何检查包含不同数据类型的熊猫数据框中的负值?
- c++ - 修改 char 数组时是否明确定义了 reintrepret_cast to char*?
- javascript - 未选中复选框时如何更改标签标签的文本
- python - 具有相同类型属性的类的类型注释?
- android-studio - 无法从 sqldelight v1.4.1 访问生成的数据库类
- django - Django 错误日志仅在调试模式下工作
- sql - SQL (Hive):在使用 GROUP BY 进行聚合时使用窗口函数
- html - 调整容器大小时使用 HTML 和 CSS 缩写标题