コンテンツにスキップ

Harlequin - ターミナルSQL IDE チートシート

Harlequin - ターミナルSQL IDE チートシート

Section titled “Harlequin - ターミナルSQL IDE チートシート”

ターミナル内で完全に動作するフル機能のSQL IDE。シンタックスハイライト、オートコンプリート、データカタログサイドバー、複数のデータベースアダプター、結果のエクスポート機能を備えています — GUIは不要です。

方法コマンド
uv (推奨)uv tool install harlequin
pippip install harlequin
pipxpipx install harlequin
Homebrewbrew install harlequin
Poetrypoetry add harlequin

データベースアダプターと共にインストール

Section titled “データベースアダプターと共にインストール”
# DuckDB(組み込み、追加インストール不要)
uv tool install harlequin

# SQLiteアダプター
uv tool install 'harlequin[sqlite]'

# PostgreSQLアダプター
uv tool install 'harlequin[postgres]'

# MySQLアダプター
uv tool install 'harlequin[mysql]'

# 複数のアダプターを一度に
uv tool install 'harlequin[postgres,mysql,sqlite,s3]'

必要条件: Python 3.9+

コマンド説明
harlequinインメモリDuckDBデータベースで開く
harlequin mydb.duckdbDuckDBデータベースファイルを開く
harlequin -a sqlite mydb.dbSQLiteデータベースを開く
harlequin -a sqliteインメモリSQLiteデータベースを開く
harlequin -a postgres -h localhost -p 5432 -U user -d mydbPostgreSQLに接続
harlequin -a mysql -h localhost -u root mydbMySQLに接続
harlequin --theme monokai特定のカラーテーマを使用
harlequin --locale en_US数値フォーマットのロケールを設定
harlequin --helpすべてのCLIオプションを表示
キー説明
Ctrl+Enter現在のクエリを実行
Ctrl+j現在のクエリを実行(代替)
Ctrl+oSQLファイルを開く
Ctrl+s現在のクエリをファイルに保存
Ctrl+n新しいクエリタブ
Ctrl+w現在のクエリタブを閉じる
Ctrl+k次のクエリタブに切り替え
Tabオートコンプリート提案を受け入れる
Escapeオートコンプリートメニューを閉じる
F1ヘルプ / コンテキストドキュメントを表示
キー説明
Ctrl+r結果パネルにフォーカスを切り替え
Ctrl+eクエリエディタにフォーカスを切り替え
矢印キー結果テーブルをナビゲート
Ctrl+c選択したセルをコピー
キー説明
Ctrl+qHarlequinを終了
Ctrl+bデータカタログサイドバーを切り替え
F1ヘルプ

DuckDBはデフォルトのアダプターで、強力な機能をサポートしています:

-- CSVファイルを直接読み取り
SELECT * FROM read_csv_auto('data.csv');

-- Parquetファイルを読み取り
SELECT * FROM read_parquet('data.parquet');

-- JSONファイルを読み取り
SELECT * FROM read_json_auto('data.json');

-- リモートファイルをクエリ
SELECT * FROM read_csv_auto('https://example.com/data.csv');

-- S3ファイルをクエリ(s3アダプターを使用)
SELECT * FROM read_parquet('s3://bucket/data.parquet');

-- 複数ファイルからデータを集計
SELECT * FROM read_csv_auto('logs/*.csv');

頻繁に使用する接続プロファイルを保存するために設定ファイルを作成:

# ~/.config/harlequin/config.toml
# (または--configフラグでパスを指定)

[profiles.local-pg]
adapter = "postgres"
host = "localhost"
port = 5432
user = "myuser"
database = "mydb"

[profiles.prod-readonly]
adapter = "postgres"
host = "prod-db.example.com"
port = 5432
user = "readonly"
database = "production"
theme = "monokai"

[profiles.duckdb-analytics]
adapter = "duckdb"
conn_str = ["analytics.duckdb"]

プロファイルを使用:

harlequin --profile local-pg
アダプターインストール追加接続例
DuckDB(組み込み)harlequin data.duckdb
SQLitesqliteharlequin -a sqlite data.db
PostgreSQLpostgresharlequin -a postgres -h host -U user -d db
MySQLmysqlharlequin -a mysql -h host -u user db
S3 / GCSs3クラウドストレージのParquet/CSV
ODBCodbc汎用ODBC接続
TrinotrinoTrino/Prestoクラスター
BigQuerybigqueryGoogle BigQuery
CassandracassandraApache Cassandra
ClickHouseclickhouseClickHouseデータベース
MotherDuck(DuckDB経由)クラウドDuckDB
# クイックデータ探索 — CSVをデータベースとして開く
harlequin
# その後クエリエディタで: SELECT * FROM read_csv_auto('data.csv') LIMIT 100;

# SQLiteデータベースを探索(例:モバイルアプリDB)
harlequin -a sqlite app.db

# 開発用にローカルPostgresに接続
harlequin -a postgres -h localhost -p 5432 -U dev -d myapp_dev

# データベースにロードせずにParquetファイルを分析
harlequin
# その後: SELECT * FROM read_parquet('output/*.parquet');
# django-harlequinをインストール
pip install django-harlequin

# Django DBに接続してHarlequinを起動
./manage.py harlequin
問題解決策
アダプターが見つからない追加と共にインストール: uv tool install 'harlequin[postgres]'
接続が拒否されたホスト、ポート、データベースサーバーが実行中であることを確認
表示の問題別のターミナルを試す(Kitty、WezTerm、iTerm2推奨)
大きなテーブルで遅いクエリにLIMITを使用; 巨大なテーブルでSELECT *を避ける
オートコンプリートがないスキーマを持つデータベースに接続していることを確認
機能HarlequinDBeaverpgcliusql
ターミナルで動作ありなし(GUI)ありあり
マルチデータベースありありPostgresのみあり
オートコンプリートありありありなし
ビジュアル結果テーブルありあり基本基本
ファイルクエリ(CSV、Parquet)あり(DuckDB)制限ありなしなし
設定プロファイルありありありなし