跳转到内容

10 分钟上手教程 ​

English

跟着本教程完成一次查询流程:打开一份小型销售数据文件,运行几个 SQL 查询,将结果画成图,再导出。本教程假设你已安装 DuckLocal;如果尚未安装,请先阅读快速上手。

1. 获取样例文件 ​

下载示例数据 sales.csv,其中包含两周共 224 行模拟订单数据。你也可以在终端中执行命令下载:

bash
curl -LO https://ducklocal.app/docs/samples/sales.csv

它有五列:

列类型示例
dateDATE2026-09-01
channelVARCHARWeb、Mobile app、Store、Phone
regionVARCHARNorth、South、East、West
ordersBIGINT72
revenueDOUBLE4181.04

这些都不用告诉 DuckLocal:DuckDB 会读取表头,自行推断类型。

2. 打开文件 ​

将 sales.csv 拖入 DuckLocal 窗口。也可以点击 打开文件…;如果已经添加了命令,还可以运行 ducklocal sales.csv。

会弹出通知 已创建视图 sales。侧栏的 本地文件 下出现了 sales,标着 224 行;展开可以看到各列及其类型。

3. 看看数据 ​

在侧栏里,点击 sales 旁边的播放按钮。编辑器里会填入一条查询该视图的 SELECT * … LIMIT 100,按 ⌘↵ 运行。

编辑器下方的表格显示查询到的行。试试表格上方的过滤框:输入 Store 并回车,只留下包含 Store 的行。过滤只作用于已经加载的行,不会重新查询。

4. 提一个问题 ​

把 SQL 换成下面这条,按 ⌘↵:

sql
SELECT channel, round(sum(revenue), 2) AS revenue
FROM sales
GROUP BY channel
ORDER BY revenue DESC;
channelrevenue
Mobile app290549.76
Web289544.8
Store240067.6
Phone82511.2

现在把结果面板从 结果 切到 图表。第一列是文本,所以每个渠道画成一根柱子,柱高取第一个数值列。

自动补全

输入时,编辑器先提示侧栏里的表名和列名,然后才是 DuckDB 函数和 SQL 关键字。比如输入 rev,第一个候选就是 revenue。

5. 画一条趋势 ​

图表原样取查询返回的行来画,想画成什么样,就把结果整理成什么形状。每个渠道一列,就得到每个渠道一条线:

sql
SELECT
  date,
  round(sum(revenue) FILTER (WHERE channel = 'Web'), 2)        AS web,
  round(sum(revenue) FILTER (WHERE channel = 'Mobile app'), 2) AS mobile,
  round(sum(revenue) FILTER (WHERE channel = 'Store'), 2)      AS store
FROM sales
GROUP BY date
ORDER BY date;

FILTER (WHERE …) 只对满足条件的行做聚合(DuckDB 语法)。

第一列是日期时,图表 会画出随时间变化的面积图,每个数值列一条序列。规则和限制见结果与图表。

6. 导出结果 ​

**注意:如果文件已存在,导出会直接覆盖,不会询问。**趁趋势结果还在结果面板里,点击 导出 CSV。对话框默认填入 ~/Desktop/export.csv;按需修改路径后确认。

导出会重新执行查询,所以文件里是完整结果,不只是表格里看得到的那部分。

7. 明天还能找到 ​

打开侧栏的 查询历史 标签页:你运行过的每条查询都在这里,失败的也在。点击一条会替换编辑器里现有的内容——确认后点击,即可把那条查询放回编辑器。

退出 DuckLocal 再重新启动。sales 仍然在 本地文件 下:打开过的文件会按路径记下来,每次启动时重新读取,所以改过 CSV 之后,下次查询就能看到新内容。

8. 附加:在终端里问同一个问题 ​

如果添加了 ducklocal 命令,CLI 不开窗口就能直接回答,写脚本或交给 AI agent 用都很方便:

bash
ducklocal query --format md --sql "
  SELECT channel, round(sum(revenue), 2) AS revenue
  FROM 'sales.csv' GROUP BY channel ORDER BY revenue DESC"

去掉 --format md 就会输出结构化的 JSON。想进一步了解,从 CLI 指南和官方 agent skill(AI 智能体技能包,供 AI 编程助手调用)入手。

接下来 ​

基于 Apache-2.0 许可开源发布。