2023-08-11 12:35:01 +02:00
|
|
|
# duckdb
|
|
|
|
|
2025-06-29 11:48:18 +03:00
|
|
|
> Client for DuckDB, an in-process analytical SQL engine.
|
2023-08-11 12:35:01 +02:00
|
|
|
> More information: <https://duckdb.org>.
|
|
|
|
|
|
|
|
- Start an interactive shell with a transient in-memory database:
|
|
|
|
|
|
|
|
`duckdb`
|
|
|
|
|
|
|
|
- Start an interactive shell on a database file. If the file does not exist, a new database is created:
|
|
|
|
|
|
|
|
`duckdb {{path/to/dbfile}}`
|
|
|
|
|
2025-05-25 23:02:44 +02:00
|
|
|
- Query a CSV, JSON, or Parquet file using SQL:
|
2023-08-11 12:35:01 +02:00
|
|
|
|
|
|
|
`duckdb -c "{{SELECT * FROM 'data_source.[csv|csv.gz|json|json.gz|parquet]'}}"`
|
|
|
|
|
2025-05-25 23:02:44 +02:00
|
|
|
- Directly query a CSV, JSON, or Parquet file using the `file` view:
|
|
|
|
|
|
|
|
`duckdb {{data_source.[csv|csv.gz|json|json.gz|parquet]}} -c "{{ SELECT * FROM file }}"`
|
|
|
|
|
2024-02-23 05:21:08 -03:00
|
|
|
- Run an SQL script:
|
2023-08-11 12:35:01 +02:00
|
|
|
|
2025-02-19 16:44:53 +01:00
|
|
|
`duckdb -f {{path/to/script.sql}}`
|
2023-08-11 12:35:01 +02:00
|
|
|
|
|
|
|
- Run query on database file and keep the interactive shell open:
|
|
|
|
|
|
|
|
`duckdb {{path/to/dbfile}} -cmd "{{SELECT DISTINCT * FROM tbl}}"`
|
|
|
|
|
2023-10-24 03:25:09 +02:00
|
|
|
- Read CSV from `stdin` and write CSV to `stdout`:
|
2023-08-11 12:35:01 +02:00
|
|
|
|
2024-07-21 11:55:13 +02:00
|
|
|
`cat {{path/to/source.csv}} | duckdb -c "{{COPY (FROM read_csv('/dev/stdin')) TO '/dev/stdout' WITH (FORMAT CSV, HEADER)}}"`
|
2023-08-11 12:35:01 +02:00
|
|
|
|
2025-04-20 12:13:20 +02:00
|
|
|
- Start the DuckDB UI, a web interface with notebooks:
|
2023-08-11 12:35:01 +02:00
|
|
|
|
2025-04-20 12:13:20 +02:00
|
|
|
`duckdb -ui`
|