只用 11 行代码实现核心:新查询语言 Prela 入门
来源: prela-lang.org — 2026-08
概述
Prela 是 UCLA RePL 正在开发的一种与 SQL 截然不同的查询语言,核心思想却异常简单:只有二元关系(即两列表格),通过关系复合与谓词操作来构造查询。这篇教程用一个 Python 玩具实现展示了整套语言——只要大约 11 行代码就能实现 .select、&、.eq、.where 等核心算子。通过把宽表「二元化」分解为行号到列值的映射,Prela 把数据库查询变成可像函数一样复合的算子链,一条 20 行 SQL 的等价格式语句在 Prela 中仅需一行。
核心要点
- 只有二元关系,通过「二元化」把宽表分解为行号到列值的映射
- 关系可视为非确定性函数,能像函数一样复合
- .select 负责关系复合,& 负责同键连接,.eq/.where 负责过滤
- 查询即算子,任意子表达式都是合法查询,CTE 只是普通变量
- 一条 20 行 SQL 的等价格式在 Prela 中仅需一行
- 作者称其为「更好的 SQL」,聚合分组等算子也已支持
金句
关系是广义的非确定性函数,而函数的威力在于它们可以复合。
👍 0
👎 0
返回 Lobsters 首页