Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

columnar-tech/databow

databow

databow GitHub Release GitHub Actions Workflow Status GitHub License

A command-line tool for querying databases via ADBC.

Highlights

  • Multi-database support - Connect to any database with a compatible ADBC driver
  • Interactive SQL shell - Execute SQL queries with command history and intuitive navigation
  • Syntax highlighting - SQL queries highlighted for improved readability
  • Formatted output - Results displayed in clean, aligned tables with dynamic column width
  • File export - Export query results to JSON, CSV, or Arrow IPC files
  • Fast and lightweight - Built in Rust for high performance and minimal resource usage

Installation

Install with uv:

uv tool install databow

Install with Cargo:

cargo install databow

Getting Started

Install the DuckDB ADBC driver with dbc:

dbc install duckdb

Interactive Usage

Connect to DuckDB (in-memory):

databow --driver duckdb

Execute SQL queries:

> CREATE TABLE penguins AS FROM 'https://blobs.duckdb.org/data/penguins.csv';
┌───────┐
│ Count │
├───────┤
│ 344 │
└───────┘
> SELECT *
. FROM penguins
. LIMIT 5;
┌─────────┬───────────┬────────────────┬───────────────┬───────────────────┬─────────────┬────────┬──────┐
│ species │ island │ bill_length_mm │ bill_depth_mm │ flipper_length_mm │ body_mass_g │ sex │ year │
├─────────┼───────────┼────────────────┼───────────────┼───────────────────┼─────────────┼────────┼──────┤
│ Adelie │ Torgersen │ 39.1 │ 18.7 │ 181 │ 3750 │ male │ 2007 │
│ Adelie │ Torgersen │ 39.5 │ 17.4 │ 186 │ 3800 │ female │ 2007 │
│ Adelie │ Torgersen │ 40.3 │ 18 │ 195 │ 3250 │ female │ 2007 │
│ Adelie │ Torgersen │ NA │ NA │ NA │ NA │ NA │ 2007 │
│ Adelie │ Torgersen │ 36.7 │ 19.3 │ 193 │ 3450 │ female │ 2007 │
└─────────┴───────────┴────────────────┴───────────────┴───────────────────┴─────────────┴────────┴──────┘

Non-interactive Usage

Execute a query directly and exit:

databow --driver duckdb --query "SELECT 42 AS the_answer"

Execute a query from stdin and exit:

echo "SELECT 42 AS the_answer" | databow --driver duckdb

Execute a query from a file and exit:

databow --driver duckdb --file select_example.sql

Execute a query and output the result to a file:

databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.json
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.csv
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.arrow

Reference

$ databow --help
Query databases via ADBC
Usage: databow [OPTIONS]
Options:
 --profile <profile> Connection profile name or path
 --driver <driver> Driver name (required if --profile not specified)
 --uri <uri> Database uniform resource identifier
 --username <username> Database user username
 --password <password> Database user password
 --option <option> Driver-specific database option
 --mode <mode> Table display style [default: utf8-compact]
 --query <query> Execute query and exit
 --file <file> Read and execute file and exit
 --output <file> Write result to file
 -h, --help Print help
 -V, --version Print version

License

This project is licensed under Apache-2.0.

AltStyle によって変換されたページ (->オリジナル) /