Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/duckdb/duckdb/llms.txt

Use this file to discover all available pages before exploring further.

What is DuckDB?

DuckDB is a high-performance analytical database system. It is designed to be fast, reliable, portable, and easy to use. DuckDB provides a rich SQL dialect with support far beyond basic SQL, including arbitrary and nested correlated subqueries, window functions, collations, complex types (arrays, structs, maps), and several extensions designed to make SQL easier to use.

In-Process Analytics Engine

Unlike traditional database systems that run as separate server processes, DuckDB is an in-process analytical database. This means it runs directly inside your application, eliminating network overhead and simplifying deployment. Think of it as “SQLite for analytics” - a powerful analytical engine that requires no separate installation or server management.

Get Started

Installation

Install DuckDB CLI or embed it in your application

Quick Start

Get up and running with your first DuckDB query

SQL Reference

Learn about DuckDB’s rich SQL dialect

API Reference

Explore C and C++ APIs for embedded usage

Key Features

Rich SQL Dialect

DuckDB supports a comprehensive SQL dialect with features that make complex analytical queries simple:
  • Arbitrary and nested correlated subqueries
  • Window functions for advanced analytics
  • Complex types: arrays, structs, and maps
  • Friendly SQL extensions for easier querying
  • Advanced aggregation and grouping operations

Built for Performance

DuckDB is optimized for analytical workloads with:
  • Columnar storage for efficient analytics
  • Vectorized query execution engine
  • Parallel query processing
  • Advanced compression techniques
  • Zero-copy data integration

Seamless Data Import

Query data directly from files without explicit import steps:
SELECT * FROM 'myfile.csv';
SELECT * FROM 'myfile.parquet';
DuckDB supports CSV, Parquet, JSON, and many other formats out of the box.

Multiple Client Libraries

DuckDB is available as:
  • Standalone CLI application for interactive queries
  • Python client with deep pandas integration
  • R client with dplyr support
  • Java, Node.js, Rust, Go and other language bindings
  • WebAssembly for in-browser analytics
  • C/C++ embedded library for direct integration

Extensible Architecture

Extend DuckDB’s functionality with:
  • Custom functions and aggregates
  • Loadable extensions for specialized features
  • Community-contributed extensions
  • Custom data sources and file formats

Use Cases

Data Analysis

Analyze large datasets directly in Python, R, or your favorite language without external database servers

ETL Pipelines

Transform and load data with SQL while leveraging DuckDB’s efficient processing engine

Embedded Analytics

Add powerful analytical capabilities directly into your application with minimal overhead

Data Science

Query and transform data in notebooks with seamless integration to pandas and arrow

Why DuckDB?

DuckDB combines the ease of SQLite (in-process, serverless) with the performance of modern analytical databases. It’s perfect for analytical workloads that don’t require a full client-server database setup.
Key advantages:
  • Zero configuration: No server setup, no configuration files, just start querying
  • Portable: Single-file database format that works across platforms
  • Fast: Optimized for analytical queries with columnar storage and vectorized execution
  • Standard SQL: Use familiar SQL syntax with powerful analytical extensions
  • Rich ecosystem: Deep integrations with popular data science tools and frameworks

Next Steps

Ready to get started? Head over to the Installation guide to set up DuckDB, or jump straight into the Quick Start to run your first queries.