gpt4 book ai didi

sql - 如何用yaml格式表达SQL查询?

转载 作者:行者123 更新时间:2023-12-05 03:54:59 25 4
gpt4 key购买 nike

我正在试验最终用户以 yaml 格式表达查询的一些随机想法。这个 yaml 文件将被送入一些中间转换器以将 yaml 转换为 SQL 语句。

以下是示例 yaml 片段,但当我想到有条件、表达式、子查询、连接时。随着查询趋于更加复杂,yaml 变得更加复杂。

问题:如何定义一个yaml格式的SQL查询并覆盖所有场景? (有没有现成的库可以做这种魔术)

table:
schema: test
name: test_table
select:
columns:
- column: * # retrieve all columns
where:
columns:
- column: user_id
- column: customer_id
limit:
value: 10
# groupBy
# orderBy

最佳答案

你的问题的答案是:你将SQL语句的语法树序列化为YAML。

快速浏览一下 pg_query了解这棵树即使对于简单的查询也有多么复杂(该工具使用 Postgres 的 SQL 解析器生成 SQL 语句的语法树)。 覆盖所有场景需要这种复杂性。

现在您当然可以尝试简化此结构,使其保留重建原始语法树所需的所有信息。 这正是 SQL 查询语言所做的!当用户可以使用定义明确且支持良好的语法来表达查询时,他们不想写下显式结构。

基本上,您会在语法树和原始 SQL 语言之间的某处创建一种全新的、基于 YAML 的语言。使用它需要用户了解 YAML 和结构的语义。因此,如果您的目标是增强用户友好性,这不太可能成为实现目标的方法。

关于sql - 如何用yaml格式表达SQL查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60530599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com