duckdb-en by aaaaqwq/agi-super-skills
npx skills add https://github.com/aaaaqwq/agi-super-skills --skill duckdb-en通过 DuckDB CLI 协助数据分析、SQL 查询和文件转换。
# CSV
duckdb -c "SELECT * FROM 'data.csv' LIMIT 10"
# Parquet
duckdb -c "SELECT * FROM 'data.parquet'"
# 使用通配符读取多个文件
duckdb -c "SELECT * FROM read_parquet('logs/*.parquet')"
# JSON
duckdb -c "SELECT * FROM read_json_auto('data.json')"
# 创建/打开数据库
duckdb my_database.duckdb
# 只读模式
duckdb -readonly existing.duckdb
| 标志 | 格式 |
|---|---|
-csv | 逗号分隔 |
-json |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| JSON 数组 |
-table | ASCII 表格 |
-markdown | Markdown 表格 |
-html | HTML 表格 |
-line | 每行一个值 |
| 参数 | 描述 |
|---|---|
-c COMMAND | 运行 SQL 并退出 |
-f FILENAME | 从文件运行脚本 |
-init FILE | 使用替代 ~/.duckdbrc 的文件 |
-readonly | 以只读模式打开 |
-echo | 在执行前显示命令 |
-bail | 在第一个错误处停止 |
-header / -noheader | 显示/隐藏列标题 |
-nullvalue TEXT | NULL 值的文本表示 |
-separator SEP | 列分隔符 |
duckdb -c "COPY (SELECT * FROM 'input.csv') TO 'output.parquet' (FORMAT PARQUET)"
duckdb -c "COPY (SELECT * FROM 'input.parquet') TO 'output.csv' (HEADER, DELIMITER ',')"
duckdb -c "COPY (SELECT * FROM read_json_auto('input.json')) TO 'output.parquet' (FORMAT PARQUET)"
duckdb -c "COPY (SELECT * FROM 'data.csv' WHERE amount > 1000) TO 'filtered.parquet' (FORMAT PARQUET)"
| 命令 | 描述 |
|---|---|
.tables [pattern] | 显示表(可使用 LIKE 模式) |
.schema [table] | 显示 CREATE 语句 |
.databases | 显示附加的数据库 |
| 命令 | 描述 |
|---|---|
.mode FORMAT | 更改输出格式 |
.output file | 将输出发送到文件 |
.once file | 将下一次输出发送到文件 |
.headers on/off | 显示/隐藏列标题 |
.separator COL ROW | 设置分隔符 |
| 命令 | 描述 |
|---|---|
.timer on/off | 显示执行时间 |
.echo on/off | 在执行前显示命令 |
.bail on/off | 出错时停止 |
.read file.sql | 从文件运行 SQL |
| 命令 | 描述 |
|---|---|
.edit 或 \e | 在外部编辑器中打开查询 |
.help [pattern] | 显示帮助 |
| 快捷键 | 操作 |
|---|---|
Home / End | 行首/行尾 |
Ctrl+Left/Right | 跳转到单词 |
Ctrl+A / Ctrl+E | 缓冲区开始/结束 |
| 快捷键 | 操作 |
|---|---|
Ctrl+P / Ctrl+N | 上一条/下一条命令 |
Ctrl+R | 搜索历史记录 |
Alt+< / Alt+> | 历史记录中的第一条/最后一条 |
| 快捷键 | 操作 |
|---|---|
Ctrl+W | 向后删除单词 |
Alt+D | 向前删除单词 |
Alt+U / Alt+L | 单词大写/小写 |
Ctrl+K | 删除到行尾 |
| 快捷键 | 操作 |
|---|---|
Tab | 自动补全 / 下一个建议 |
Shift+Tab | 上一个建议 |
Esc+Esc | 撤销自动补全 |
上下文感知的自动补全,通过 Tab 键激活:
CREATE TABLE sales AS SELECT * FROM 'sales_2024.csv';
INSERT INTO sales SELECT * FROM 'sales_2025.csv';
COPY sales TO 'backup.parquet' (FORMAT PARQUET);
SELECT
COUNT(*) as count,
AVG(amount) as average,
SUM(amount) as total
FROM 'transactions.csv';
SELECT
category,
COUNT(*) as count,
SUM(amount) as total
FROM 'data.csv'
GROUP BY category
ORDER BY total DESC;
SELECT a.*, b.name
FROM 'orders.csv' a
JOIN 'customers.parquet' b ON a.customer_id = b.id;
DESCRIBE SELECT * FROM 'data.csv';
# 从标准输入读取
cat data.csv | duckdb -c "SELECT * FROM read_csv('/dev/stdin')"
# 管道传输到另一个命令
duckdb -csv -c "SELECT * FROM 'data.parquet'" | head -20
# 写入标准输出
duckdb -c "COPY (SELECT * FROM 'data.csv') TO '/dev/stdout' (FORMAT CSV)"
将常用设置保存在 ~/.duckdbrc 中:
.timer on
.mode duckbox
.maxrows 50
.highlight on
.keyword green
.constant yellow
.comment brightblack
.error red
在您的编辑器中打开复杂查询:
.edit
编辑器按以下顺序选择:DUCKDB_EDITOR → EDITOR → VISUAL → vi
限制文件访问的安全模式。启用后:
.read、.output、.import、.sh 等命令LIMIT 进行快速预览read_csv_auto 和 read_json_auto 会猜测列类型memory_limit 值每周安装数
1
代码仓库
GitHub 星标数
11
首次出现
1 天前
安全审计
安装于
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
Helps with data analysis, SQL queries and file conversion via DuckDB CLI.
# CSV
duckdb -c "SELECT * FROM 'data.csv' LIMIT 10"
# Parquet
duckdb -c "SELECT * FROM 'data.parquet'"
# Multiple files with glob
duckdb -c "SELECT * FROM read_parquet('logs/*.parquet')"
# JSON
duckdb -c "SELECT * FROM read_json_auto('data.json')"
# Create/open database
duckdb my_database.duckdb
# Read-only mode
duckdb -readonly existing.duckdb
| Flag | Format |
|---|---|
-csv | Comma-separated |
-json | JSON array |
-table | ASCII table |
-markdown | Markdown table |
-html | HTML table |
-line | One value per line |
| Argument | Description |
|---|---|
-c COMMAND | Run SQL and exit |
-f FILENAME | Run script from file |
-init FILE | Use alternative to ~/.duckdbrc |
-readonly | Open in read-only mode |
-echo | Show commands before execution |
-bail | Stop on first error |
duckdb -c "COPY (SELECT * FROM 'input.csv') TO 'output.parquet' (FORMAT PARQUET)"
duckdb -c "COPY (SELECT * FROM 'input.parquet') TO 'output.csv' (HEADER, DELIMITER ',')"
duckdb -c "COPY (SELECT * FROM read_json_auto('input.json')) TO 'output.parquet' (FORMAT PARQUET)"
duckdb -c "COPY (SELECT * FROM 'data.csv' WHERE amount > 1000) TO 'filtered.parquet' (FORMAT PARQUET)"
| Command | Description |
|---|---|
.tables [pattern] | Show tables (with LIKE pattern) |
.schema [table] | Show CREATE statements |
.databases | Show attached databases |
| Command | Description |
|---|---|
.mode FORMAT | Change output format |
.output file | Send output to file |
.once file | Next output to file |
.headers on/off | Show/hide column headers |
.separator COL ROW | Set separators |
| Command | Description |
|---|---|
.timer on/off | Show execution time |
.echo on/off | Show commands before execution |
.bail on/off | Stop on error |
.read file.sql | Run SQL from file |
| Command | Description |
|---|---|
.edit or \e | Open query in external editor |
.help [pattern] | Show help |
| Shortcut | Action |
|---|---|
Home / End | Start/end of line |
Ctrl+Left/Right | Jump word |
Ctrl+A / Ctrl+E | Start/end of buffer |
| Shortcut | Action |
|---|---|
Ctrl+P / Ctrl+N | Previous/next command |
Ctrl+R | Search history |
Alt+< / Alt+> | First/last in history |
| Shortcut | Action |
|---|---|
Ctrl+W | Delete word backward |
Alt+D | Delete word forward |
Alt+U / Alt+L | Uppercase/lowercase word |
Ctrl+K | Delete to end of line |
| Shortcut | Action |
|---|---|
Tab | Autocomplete / next suggestion |
Shift+Tab | Previous suggestion |
Esc+Esc | Undo autocomplete |
Context-aware autocomplete activated with Tab:
CREATE TABLE sales AS SELECT * FROM 'sales_2024.csv';
INSERT INTO sales SELECT * FROM 'sales_2025.csv';
COPY sales TO 'backup.parquet' (FORMAT PARQUET);
SELECT
COUNT(*) as count,
AVG(amount) as average,
SUM(amount) as total
FROM 'transactions.csv';
SELECT
category,
COUNT(*) as count,
SUM(amount) as total
FROM 'data.csv'
GROUP BY category
ORDER BY total DESC;
SELECT a.*, b.name
FROM 'orders.csv' a
JOIN 'customers.parquet' b ON a.customer_id = b.id;
DESCRIBE SELECT * FROM 'data.csv';
# Read from stdin
cat data.csv | duckdb -c "SELECT * FROM read_csv('/dev/stdin')"
# Pipe to another command
duckdb -csv -c "SELECT * FROM 'data.parquet'" | head -20
# Write to stdout
duckdb -c "COPY (SELECT * FROM 'data.csv') TO '/dev/stdout' (FORMAT CSV)"
Save common settings in ~/.duckdbrc:
.timer on
.mode duckbox
.maxrows 50
.highlight on
.keyword green
.constant yellow
.comment brightblack
.error red
Open complex queries in your editor:
.edit
Editor is chosen from: DUCKDB_EDITOR → EDITOR → VISUAL → vi
Secure mode that restricts file access. When enabled:
.read, .output, .import, .sh etc.LIMIT on large files for quick previewread_csv_auto and read_json_auto guess column typesmemory_limit values on some Ubuntu versionsWeekly Installs
1
Repository
GitHub Stars
11
First Seen
1 day ago
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
Excel财务建模规范与xlsx文件处理指南:专业格式、零错误公式与数据分析
42,000 周安装
-header / -noheader |
| Show/hide column headers |
-nullvalue TEXT | Text for NULL values |
-separator SEP | Column separator |