LinuxCommandLibrary

duckdb

Command-line client for DuckDB, an in-process analytical SQL engine.

TLDR

Start an interactive shell with a transient in-memory database

$ duckdb
copy


Start an interactive shell on a database file. If the file does not exist, a new database is created
$ duckdb [path/to/dbfile]
copy


Directly query a CSV, JSON, or Parquet file
$ duckdb -c "[SELECT * FROM 'data_source.[csv|csv.gz|json|json.gz|parquet]']"
copy


Run a SQL script
$ duckdb -c ".read [path/to/script.sql]"
copy


Run query on database file and keep the interactive shell open
$ duckdb [path/to/dbfile] -cmd "[SELECT DISTINCT * FROM tbl]"
copy


Run SQL queries in file on database and keep the interactive shell open
$ duckdb [path/to/dbfile] -init [path/to/script.sql]
copy


Read CSV from stdin and write CSV to stdout
$ cat [path/to/source.csv] | duckdb -c "[COPY (FROM read_csv_auto('/dev/stdin')) TO '/dev/stdout' WITH (FORMAT CSV, HEADER)]"
copy


Display help
$ duckdb -help
copy

Copied to clipboard