新闻详情

新闻详情

首页 / 资讯中心 / 详情

PRQL 的 from 数据源:指定关系、别名与特殊标识符的完整指南

发布时间:2026/11/5 0:47:31来源:尧图网络
PRQL 的 from 数据源:指定关系、别名与特殊标识符的完整指南
PRQL 的 from 数据源指定关系、别名与特殊标识符的完整指南【免费下载链接】prqlPRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement项目地址: https://gitcode.com/gh_mirrors/pr/prqlfrom是 PRQL 管道式查询的起点与基石——每个查询都必须由一个from语句来声明数据源编译器会据此构建主管道pipeline。本文基于官方参考文档结合 prqlc 编译器源码与集成测试系统讲解from的基本用法、别名赋值、特殊字符表名的反引号引用以及default_db.前缀规避标准库名称冲突的完整方案帮助你写出准确、可编译、可移植的 PRQL 查询。from的基本用法声明数据源from的作用只有一个指定一个数据源data source。在 PRQL 中数据源通常对应数据库中的一张表from artists在 prqlc 标准库 中from被定义为接受default_db.source表引用、返回该relation的转换函数let from func default_db.source relation - relation source可以看到from的参数被限定为default_db命名空间下的表引用relation类型返回值即该关系本身。这正是 PRQL 把数据源当作普通关系relation对待的体现——from之后可以无缝接上select、filter、derive等任何标准库转换。from是查询的必要起点从编译器实现看from不只是惯例而是强制要求。在 lowering.rs 中当存在用户声明但没有以from开头的管道时编译器会直接报错PRQL queries must begin with from A query must start with a from statement to define the main pipeline因此任何完整的 PRQL 查询都应以from定义主管道作为第一行这一点在 集成测试 中大量体现例如from tracks、from invoices、from genres等。使用别名赋值表达式数据源表名不一定要与后续引用完全一致可以用赋值表达式assign expression为表引入别名from e employees select e.first_name别名在管道后续步骤中作为表限定符使用能够消解列名歧义让查询更清晰。集成测试中同样广泛采用这一写法例如 group_sort.prql 中的from aalbums以及 invoice_totals.prql 中的from iinvoices——后续步骤通过i.前缀引用该表的列。需要说明的是这种别名的引用机制建立在 标识符与this/that查找规则 之上在join场景中this指当前关系、that指另一张表为from指定别名后管道内即可用该别名精确限定列来源。特殊字符与保留字反引号引用表名若包含空格或特殊字符需要用反引号backtick包裹from artist tracks这与 PRQL 的标识符规则一脉相承。标识符与关键字文档 明确规定标识符只能包含字母数字与下划线、不能以数字开头要使用其他字符就用反引号包围。编译到 SQL 时这些标识符会按目标方言的规则进行引用和转义。反引号引用同样适用于文件路径等非传统表名场景。在 read-files.md 中DuckDB 允许直接在FROM子句写文件名PRQL 中同样需要反引号from artists.parquet此外PRQL 的保留字如case、type、enum、func、module等也都可以用反引号当作列名或变量名使用例如case其完整列表见 keywords.md。与标准库函数重名default_db.前缀当表名恰好与标准库中的某个函数同名时直接写from group会让编译器把group解析成标准库函数而非表名。此时可用default_db.前缀显式指明表属于默认数据库default_db.group # in place of from group take 1官方文档也坦承这是一个略显笨拙的临时方案awkward workaround其原因是from函数的签名限定为default_db.source——前缀default_db.正是为了让表引用显式落在default_db命名空间内从而与std命名空间下的函数名区分开。这一点在标准库定义中可以得到印证转换函数全部位于std命名空间std.from与from等价而表引用则归属于default_db命名空间。在使用该语法时管道起点不再是以from开头的语句而是以default_db.table_name开头的表引用表达式后续步骤如take 1仍照常串联。若后续官方解决该问题对应 issue #3271这一写法可能会被更优雅的语法取代届时请以新版本文档为准。进阶多层级数据库与 Schema 前缀from还支持带 schema 与数据库名的完整限定标识符。根据 标识符与关键字文档可以写成from my_database.chinook.albums但需要注意tracks、public.tracks、my_database.public.tracks会被编译器视为彼此独立的表定义因此在同一查询中要避免混用不同层级的前缀以免产生意外行为。from在编译链路中的位置从源码结构看from的解析与处理贯穿 PRQL 编译链路的多个阶段词法/语法层from作为转换transform被识别。在 CLI 的语法高亮模块 highlight.rs 中from被列为高亮关键字。语义层经解析后管道必须在语义阶段以from或default_db.表引用起始否则 lowering.rs 报出E0001错误。SQL 生成层在 keywords.rs 中from被确认为各 SQL 方言Generic 等的保留关键字最终对应生成 SQL 的FROM子句。换言之你在 PRQL 中写的from最终会被编译器映射为 SQL 的FROM而整个查询管道则围绕该数据源逐级构建。总结from虽然语法简单却是 PRQL 每个查询的强制入口基础用法from table直接声明数据源from alias table引入别名供管道后续引用含空格或特殊字符的表名使用反引号table name与标准库函数重名的表名使用default_db.group显式限定支持database.schema.table多级限定但各层级写法被视为不同表。若希望进一步了解关系数据的其他来源可继续阅读 临时关系字面量数组 与 文件读取函数DuckDB关于prql target:等查询头配置可参考 Target 与版本。【免费下载链接】prqlPRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement项目地址: https://gitcode.com/gh_mirrors/pr/prql创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/4 15:56:54

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/4 22:55:41

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/4 17:01:23

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/4 12:33:12

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/4 1:25:31

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/4 3:51:11

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉