- Installation
 - Documentation
 - Getting Started
 - Connect
 - Data Import and Export
 - Overview
 - Data Sources
 - CSV Files
 - JSON Files
 - Overview
 - Creating JSON
 - Loading JSON
 - Writing JSON
 - JSON Type
 - JSON Functions
 - Format Settings
 - Installing and Loading
 - SQL to / from JSON
 - Caveats
 - Multiple Files
 - Parquet Files
 - Partitioning
 - Appender
 - INSERT Statements
 - Lakehouse Formats
 - Client APIs
 - Overview
 - Tertiary Clients
 - ADBC
 - C
 - Overview
 - Startup
 - Configuration
 - Query
 - Data Chunks
 - Vectors
 - Values
 - Types
 - Prepared Statements
 - Appender
 - Table Functions
 - Replacement Scans
 - API Reference
 - C++
 - CLI
 - Overview
 - Arguments
 - Dot Commands
 - Output Formats
 - Editing
 - Safe Mode
 - Autocomplete
 - Syntax Highlighting
 - Known Issues
 - Dart
 - Go
 - Java (JDBC)
 - Julia
 - Node.js (Deprecated)
 - Node.js (Neo)
 - ODBC
 - PHP
 - Python
 - Overview
 - Data Ingestion
 - Conversion between DuckDB and Python
 - DB API
 - Relational API
 - Function API
 - Types API
 - Expression API
 - Spark API
 - API Reference
 - Known Python Issues
 - R
 - Rust
 - Swift
 - Wasm
 - SQL
 - Introduction
 - Statements
 - Overview
 - ANALYZE
 - ALTER DATABASE
 - ALTER TABLE
 - ALTER VIEW
 - ATTACH and DETACH
 - CALL
 - CHECKPOINT
 - COMMENT ON
 - COPY
 - CREATE INDEX
 - CREATE MACRO
 - CREATE SCHEMA
 - CREATE SECRET
 - CREATE SEQUENCE
 - CREATE TABLE
 - CREATE VIEW
 - CREATE TYPE
 - DELETE
 - DESCRIBE
 - DROP
 - EXPORT and IMPORT DATABASE
 - INSERT
 - LOAD / INSTALL
 - MERGE INTO
 - PIVOT
 - Profiling
 - SELECT
 - SET / RESET
 - SET VARIABLE
 - SHOW and SHOW DATABASES
 - SUMMARIZE
 - Transaction Management
 - UNPIVOT
 - UPDATE
 - USE
 - VACUUM
 - Query Syntax
 - SELECT
 - FROM and JOIN
 - WHERE
 - GROUP BY
 - GROUPING SETS
 - HAVING
 - ORDER BY
 - LIMIT and OFFSET
 - SAMPLE
 - Unnesting
 - WITH
 - WINDOW
 - QUALIFY
 - VALUES
 - FILTER
 - Set Operations
 - Prepared Statements
 - Data Types
 - Overview
 - Array
 - Bitstring
 - Blob
 - Boolean
 - Date
 - Enum
 - Interval
 - List
 - Literal Types
 - Map
 - NULL Values
 - Numeric
 - Struct
 - Text
 - Time
 - Timestamp
 - Time Zones
 - Union
 - Typecasting
 - Expressions
 - Overview
 - CASE Expression
 - Casting
 - Collations
 - Comparisons
 - IN Operator
 - Logical Operators
 - Star Expression
 - Subqueries
 - TRY
 - Functions
 - Overview
 - Aggregate Functions
 - Array Functions
 - Bitstring Functions
 - Blob Functions
 - Date Format Functions
 - Date Functions
 - Date Part Functions
 - Enum Functions
 - Interval Functions
 - Lambda Functions
 - List Functions
 - Map Functions
 - Nested Functions
 - Numeric Functions
 - Pattern Matching
 - Regular Expressions
 - Struct Functions
 - Text Functions
 - Time Functions
 - Timestamp Functions
 - Timestamp with Time Zone Functions
 - Union Functions
 - Utility Functions
 - Window Functions
 - Constraints
 - Indexes
 - Meta Queries
 - DuckDB's SQL Dialect
 - Overview
 - Indexing
 - Friendly SQL
 - Keywords and Identifiers
 - Order Preservation
 - PostgreSQL Compatibility
 - SQL Quirks
 - Samples
 - Configuration
 - Extensions
 - Overview
 - Installing Extensions
 - Advanced Installation Methods
 - Distributing Extensions
 - Versioning of Extensions
 - Troubleshooting of Extensions
 - Core Extensions
 - Overview
 - AutoComplete
 - Avro
 - AWS
 - Azure
 - Delta
 - DuckLake
 - Encodings
 - Excel
 - Full Text Search
 - httpfs (HTTP and S3)
 - Iceberg
 - Overview
 - Iceberg REST Catalogs
 - Amazon S3 Tables
 - Amazon SageMaker Lakehouse (AWS Glue)
 - Troubleshooting
 - ICU
 - inet
 - jemalloc
 - MySQL
 - PostgreSQL
 - Spatial
 - SQLite
 - TPC-DS
 - TPC-H
 - UI
 - VSS
 - Guides
 - Overview
 - Data Viewers
 - Database Integration
 - File Formats
 - Overview
 - CSV Import
 - CSV Export
 - Directly Reading Files
 - Excel Import
 - Excel Export
 - JSON Import
 - JSON Export
 - Parquet Import
 - Parquet Export
 - Querying Parquet Files
 - File Access with the file: Protocol
 - Network and Cloud Storage
 - Overview
 - HTTP Parquet Import
 - S3 Parquet Import
 - S3 Parquet Export
 - S3 Iceberg Import
 - S3 Express One
 - GCS Import
 - Cloudflare R2 Import
 - DuckDB over HTTPS / S3
 - Fastly Object Storage Import
 - Meta Queries
 - Describe Table
 - EXPLAIN: Inspect Query Plans
 - EXPLAIN ANALYZE: Profile Queries
 - List Tables
 - Summarize
 - DuckDB Environment
 - ODBC
 - Performance
 - Overview
 - Environment
 - Import
 - Schema
 - Indexing
 - Join Operations
 - File Formats
 - How to Tune Workloads
 - My Workload Is Slow
 - Benchmarks
 - Working with Huge Databases
 - Python
 - Installation
 - Executing SQL
 - Jupyter Notebooks
 - marimo Notebooks
 - SQL on Pandas
 - Import from Pandas
 - Export to Pandas
 - Import from Numpy
 - Export to Numpy
 - SQL on Arrow
 - Import from Arrow
 - Export to Arrow
 - Relational API on Pandas
 - Multiple Python Threads
 - Integration with Ibis
 - Integration with Polars
 - Using fsspec Filesystems
 - SQL Editors
 - SQL Features
 - Snippets
 - Creating Synthetic Data
 - Dutch Railway Datasets
 - Sharing Macros
 - Analyzing a Git Repository
 - Importing Duckbox Tables
 - Copying an In-Memory Database to a File
 - Troubleshooting
 - Glossary of Terms
 - Browsing Offline
 - Operations Manual
 - Overview
 - DuckDB's Footprint
 - Installing DuckDB
 - Logging
 - Securing DuckDB
 - Non-Deterministic Behavior
 - Limits
 - DuckDB Docker Container
 - Development
 - DuckDB Repositories
 - Profiling
 - Building DuckDB
 - Overview
 - Build Configuration
 - Building Extensions
 - Android
 - Linux
 - macOS
 - Raspberry Pi
 - Windows
 - Python
 - R
 - Troubleshooting
 - Unofficial and Unsupported Platforms
 - Benchmark Suite
 - Testing
 - Internals
 - Sitemap
 - Live Demo
 
- 
    
A driver manager is required to manage communication between applications and the ODBC driver. DuckDB supports
unixODBC, which is a complete ODBC driver manager for macOS and Linux. Users can install it from the command line via Homebrew:brew install unixodbc - 
    
    
DuckDB releases a universal ODBC driver for macOS (supporting both Intel and Apple Silicon CPUs). To download it, run:
wget https://github.com/duckdb/duckdb-odbc/releases/download/v1.4.1.0/duckdb_odbc-osx-universal.zip - 
    
The archive contains the
libduckdb_odbc.dylibartifact. To extract it to a directory, run:mkdir duckdb_odbc && unzip duckdb_odbc-osx-universal.zip -d duckdb_odbc - 
    
There are two ways to configure the ODBC driver, either by initializing via the configuration files, or by connecting with
SQLDriverConnect. A combination of the two is also possible.Furthermore, the ODBC driver supports all the configuration options included in DuckDB.
If a configuration is set in both the connection string passed to
SQLDriverConnectand in theodbc.inifile, the one passed toSQLDriverConnectwill take precedence.For the details of the configuration parameters, see the ODBC configuration page.
 - 
    
After the configuration, to validate the installation, it is possible to use an ODBC client. unixODBC uses a command line tool called
isql.Use the DSN defined in
odbc.inias a parameter ofisql.isql DuckDB+---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | echo [string] | | quit | | | +---------------------------------------+SQL> SELECT 42;+------------+ | 42 | +------------+ | 42 | +------------+ SQLRowCount returns -1 1 rows fetched