DuckDB

Cheatsheet

Installation - Windows

scoop install duckdb

JDBC - Connect to in-memory database

JDBC URL

jdbc:duckdb:

JDBC - Connect to database file

JDBC URL

jdbc:duckdb:$database_file_path

SQL - Read a CSV file

SELECT * FROM read_csv_auto('file.csv');

Cheatsheet - Parquet

CLI - Query a Parquet file

duckdb -s "FROM '$file_parquet' LIMIT 10;"

SQL - Query a Parquet file

SELECT * FROM 'file.parquet';

If the file does not end in .parquet, use the read_parquet function:

SELECT * FROM read_parquet('file.parq');

SQL - Read all Parquet files in a directory

SELECT * FROM 'directory/*.parquet';

SQL - Query the metadata contained within a Parquet file

SELECT * FROM parquet_metadata('file.parquet');

SQL - Use a list of globs to read all Parquet files from multiple different folders

SELECT * FROM read_parquet(['folder1/*.parquet', 'folder2/*.parquet']);

SQL - Show the column names and column types of a Parquet file

DESCRIBE SELECT * FROM 'file.parquet';

SQL - Show internal schema of a Parquet file

SELECT * FROM parquet_schema('file.parquet');

SQL - Query file-level metadata of a Parquet file

SELECT * FROM parquet_file_metadata('file.parquet');

SQL - Create a table from a query

CREATE TABLE table_name AS SELECT * FROM read_csv_auto('file.csv');

Cheatsheet - Excel

SQL - Export a table to an Excel file

CREATE TABLE test AS
    SELECT * FROM 'file.parquet';
COPY test TO 'test.xlsx' WITH (FORMAT xlsx, HEADER true);

Cheatsheet - Extensions

List all extensions

SELECT extension_name, installed, description
FROM duckdb_extensions();

Cheatsheet - Shell

Shell - Open a DuckDB database file

.open $database_file_path

Shell - Exit

Ctrl+D

or

.quit

Shell - List all tables and views

.tables

BI as Code