Version
-
0.9.2 (Latest Release)
-
GitHub main (Bleeding Edge)
Environment
- Command Line
- Python
- R
- Java
- Node.js
- Rust
- Go
- C/C++
- ODBC
Package
- Source
- Binary
Platform
- Windows
- macOS
- Linux
Installation
Usage Example
import duckdb
cursor = duckdb.connect()
print(cursor.execute('SELECT 42').fetchall())
pip install duckdb==0.9.2
install.packages("duckdb")
<dependency>
<groupId>org.duckdb</groupId>
<artifactId>duckdb_jdbc</artifactId>
<version>0.9.2</version>
</dependency>
Direct link to JAR: duckdb_jdbc-0.9.2.jar
npm install duckdb
cargo add duckdb --features bundled
go get github.com/marcboeker/go-duckdb
(third-party library)
(third-party library)
git clone https://github.com/duckdb/duckdb.git
cd duckdb
git checkout v0.9.2
make -j8
cd duckdb
git checkout v0.9.2
make -j8
git clone https://github.com/duckdb/duckdb.git
cd duckdb
make -j8
cd duckdb
make -j8
macOS clang (Universal): https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-osx-universal.zip
Linux gcc (AMD64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-linux-amd64.zip
Linux gcc (ARM64/AArch64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-linux-aarch64.zip
Linux gcc (ARM64/AArch64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-linux-aarch64.zip
Windows MSVC (64-bit): https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-windows-amd64.zip
Homebrew: brew install duckdb
GitHub Binary: https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-osx-universal.zip
GitHub Binary: https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-osx-universal.zip
Linux (AMD64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-linux-amd64.zip
Linux (ARM64/AArch64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-linux-aarch64.zip
Linux (ARM64/AArch64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-linux-aarch64.zip
winget: winget install DuckDB.cli
Windows (64-bit): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-windows-amd64.zip
Windows (64-bit): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-windows-amd64.zip
Linux (AMD64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_odbc-linux-amd64.zip
Linux (ARM64/AArch64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_odbc-linux-aarch64.zip
Linux (ARM64/AArch64): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_odbc-linux-aarch64.zip
sudo apt-get install unixodbc unixodbc-dev
./unixodbc_setup.sh --help
Windows (64-bit): https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_odbc-windows-amd64.zip
./odbc_install.exe (double-click)
./odbc_install.exe (double-click)
pip install duckdb --pre --upgrade
install.packages('duckdb', repos=c('https://duckdb.r-universe.dev', 'https://cloud.r-project.org'))
Java dev builds are available in the sonatype snapshots repository, which can be accessed with the following:
<dependency>
<groupId>org.duckdb</groupId>
<artifactId>duckdb_jdbc</artifactId>
<version>0.10.0-SNAPSHOT</version>
</dependency>
...
<repositories>
<repository>
<id>oss-sonatype</id>
<name>oss-sonatype</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
npm install duckdb@next
Linux gcc (AMD64): https://artifacts.duckdb.org/latest/duckdb-binaries-linux.zip
Linux gcc (ARM64/AArch64): https://artifacts.duckdb.org/latest/duckdb-binaries-linux-aarch64.zip
Linux gcc (ARM64/AArch64): https://artifacts.duckdb.org/latest/duckdb-binaries-linux-aarch64.zip
macOS clang (Universal): https://artifacts.duckdb.org/latest/duckdb-binaries-osx.zip
Windows MSVC (64-bit): https://artifacts.duckdb.org/latest/duckdb-binaries-windows.zip
Not available
import duckdb
cursor = duckdb.connect()
print(cursor.execute('SELECT 42').fetchall())
library("DBI")
con = dbConnect(duckdb::duckdb(), ":memory:")
dbWriteTable(con, "iris", iris)
dbGetQuery(con, 'SELECT "Species", MIN("Sepal.Width") FROM iris GROUP BY "Species"')
Class.forName("org.duckdb.DuckDBDriver");
Connection conn = DriverManager.getConnection("jdbc:duckdb:");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT 42");
var duckdb = require('duckdb');
var db = new duckdb.Database(':memory:'); // or a file name for a persistent DB
db.all('SELECT 42 AS fortytwo', function(err, res) {
if (err) {
throw err;
}
console.log(res[0].fortytwo)
});
use duckdb::{Connection, Result};
#[derive(Debug)]
struct Person { id: i32, name: String, }
fn main() -> Result<()> {
let conn = Connection::open_in_memory()?;
conn.execute_batch(
r"CREATE TABLE person (id BIGINT, name VARCHAR);
INSERT INTO person VALUES (42, 'John');
")?;
let mut stmt = conn.prepare("SELECT id, name FROM person")?;
let person_iter = stmt.query_map([], |row| {
Ok(Person {id: row.get(0)?, name: row.get(1)?})
})?;
for person in person_iter {
println!("Found person {:?}", person.unwrap());
}
Ok(())
}
package main
import (
"database/sql"
"fmt"
_ "github.com/marcboeker/go-duckdb"
)
func main() {
db, _ := sql.Open("duckdb", "")
db.Exec(`CREATE TABLE person (id INTEGER, name VARCHAR)`)
db.Exec(`INSERT INTO person VALUES (42, 'John')`)
var (
id int
name string
)
row := db.QueryRow(`SELECT id, name FROM person`)
_ = row.Scan(&id, &name)
fmt.Println("id:", id, "name:", name)
}
DuckDB db(nullptr);
Connection con(db);
auto result = con.Query("SELECT 42");
result->Print();
./duckdb