什么是SQL
SQL(结构化查询语言)是一种特定于领域的语言,旨在处理关系数据库中的数据。这是一种声明性语言,因此您要描述要实现的目标(例如,给我一行id = 5的数据),而不是如何实现的(例如,遍历各行直到id = 5)。它具有关系代数和微积分的正式数学基础。该语言是定期更新的ISO / IEC标准,最新版本为SQL2016。这意味着,如果需要,可以对语言进行非常正式和清晰的描述。
SQL旨在处理使用数据的生命周期的许多方面:是的,您可以查询数据,但也可以创建数据格式(即表的架构)并管理对数据的访问控制。
SQL存储过程扩展
实际的SQL实现带有过程扩展,这些扩展实现了某种形式的过程编程。这些因数据库引擎而异。添加它们是为了直接在数据库上对数据执行复杂的处理,因此它们可以像传统编程语言一样强大。如果您尝试解析SQL,这也可能会更加令人头疼。
语法
有几种(通常是部分的)不同格式的语法。它们可以成为到达所需位置的良好起点。
适用于SQL-92,SQL-99和SQL-2003的BNF语法
部分的 适用于ANTLR4的Teradata SQL语法
ANTLR v4语法存储库包含以下语法 MySQL,PL / SQL,T-SQL和SQLite。
SQL解析库
有很多库可以解析不同语言的SQL。有些支持不同的数据库和不同的编程语言。这是最常用的列表。除非另有说明,否则这些库是根据开源许可证发布的。
多语言和/或多数据库
通用SQL解析器是一个商业库,支持