Skip to main content

DuckDB Cheatsheet

DuckDB is a high-performance embedded analytical database designed for OLAP workloads. It is serverless and supports direct SQL queries on CSV, Parquet, and JSON files, with a rich extension ecosystem.

Updated: 2026-07-20·46 commands

Quick Start

``bash duckdb mydb.duckdb # Open/create database duckdb -c "SELECT version()" # One-shot query SELECT * FROM read_csv_auto('data.csv') # Query CSV directly CREATE TABLE t AS SELECT * FROM read_parquet('f.parquet') # Import Parquet SUMMARIZE SELECT * FROM t # Profile data ``

Install & Setup(5)

CommandLevel
brew install duckdb
Install DuckDB via Homebrew
Basic
pip install duckdb
Install DuckDB Python package via pip
Basic
curl -fsSL https://install.duckdb.org | sh
Install DuckDB CLI via install script
Basic
duckdb --version
Check DuckDB version
Basic
duckdb --help
Show DuckDB help
Basic

Basic Usage(7)

CommandLevel
duckdb
Start DuckDB CLI (in-memory database)
Basic
duckdb mydb.db
Open/create a persistent database file
Basic
duckdb -c "SELECT 1"
Execute a single SQL query and exit
Basic
.tables
List all tables in current database
Basic
.schema TABLE
View CREATE TABLE statement for a table
Basic
.databases
List all attached databases
Basic
.quit
Exit DuckDB CLI
Basic

Query & Analysis(8)

CommandLevel
SELECT * FROM read_csv_auto('file.csv')
Auto-infer schema and read CSV file
Basic
SELECT * FROM read_csv_auto('*.csv')
Read multiple CSV files (glob pattern)
Intermediate
SELECT * FROM read_parquet('file.parquet')
Query Parquet files directly
Basic
SELECT * FROM read_parquet('*.parquet')
Query multiple Parquet files
Intermediate
SUMMARIZE TABLE
Generate statistical summary of a table
Basic
EXPLAIN ANALYZE SQL
Analyze query execution plan and performance
Intermediate
SELECT * FROM read_json_auto('file.json')
Auto-infer schema and read JSON file
Basic
SELECT * FROM delta_scan('path/to/delta/table')
Query Delta Lake tables directly
Expert

Table Ops(8)

CommandLevel
CREATE TABLE t AS SELECT * FROM read_csv_auto('f.csv')
Create table from CSV
Basic
CREATE TABLE t AS SELECT * FROM read_parquet('f.parquet')
Create table from Parquet
Basic
INSERT INTO t SELECT * FROM read_csv_auto('f.csv')
Append CSV data into existing table
Intermediate
.import FILE TABLE
Import data from file into table
Basic
COPY t TO 'output.csv' (HEADER, DELIMITER ',')
Export table to CSV file
Intermediate
COPY t TO 'output.parquet'
Export table to Parquet file
Intermediate
DROP TABLE t
Drop a table
Basic
DESCRIBE TABLE
View table column information
Basic

Format & Export(8)

CommandLevel
duckdb -csv -c SQL
Output query results in CSV format
Basic
duckdb --json -c SQL
Output query results in JSON format
Basic
duckdb -list -c SQL
List format output (no borders, pipe-friendly)
Basic
duckdb -readonly mydb.db
Open database in read-only mode
Intermediate
.mode markdown
Set output format to Markdown table
Intermediate
.mode box
Set output format to box table
Intermediate
.maxrows N
Set maximum rows to display
Basic
.separator SEP
Set CSV separator
Intermediate

Advanced(10)

CommandLevel
INSTALL EXTENSION
Install a DuckDB extension
Intermediate
LOAD EXTENSION
Load an installed extension
Intermediate
SELECT * FROM read_csv_auto('s3://bucket/file.csv')
Query CSV directly from S3
Expert
ATTACH 'other.db' AS other
Attach another database file
Intermediate
PRAGMA table_info('t')
View detailed column info for a table
Intermediate
PRAGMA database_list
List all attached databases
Intermediate
SELECT version()
View DuckDB version info
Basic
SELECT * FROM duckdb_extensions()
List installed and available extensions
Intermediate
SELECT * FROM duckdb_tables()
List metadata for all tables in database
Intermediate
SELECT * FROM duckdb_columns()
List metadata for all columns in database
Intermediate

FAQ

This cheatsheet is compiled from official tool documentation. Last updated: 2026-07-20.