Aller au contenu

Aide-Mémoire Harlequin - IDE SQL Terminal

Un IDE SQL complet qui s’exécute entièrement dans votre terminal. Offre coloration syntaxique, autocomplétion, une barre latérale de catalogue de données, plusieurs adaptateurs de bases de données et exportation de résultats — aucune interface graphique nécessaire.

MéthodeCommande
uv (Recommandé)uv tool install harlequin
pippip install harlequin
pipxpipx install harlequin
Homebrewbrew install harlequin
Poetrypoetry add harlequin

Installation avec Adaptateurs de Bases de Données

Section intitulée « Installation avec Adaptateurs de Bases de Données »
# DuckDB (intégré, pas d'installation supplémentaire nécessaire)
uv tool install harlequin

# Adaptateur SQLite
uv tool install 'harlequin[sqlite]'

# Adaptateur PostgreSQL
uv tool install 'harlequin[postgres]'

# Adaptateur MySQL
uv tool install 'harlequin[mysql]'

# Plusieurs adaptateurs à la fois
uv tool install 'harlequin[postgres,mysql,sqlite,s3]'

Prérequis : Python 3.9+

CommandeDescription
harlequinOuvrir avec base de données DuckDB en mémoire
harlequin mydb.duckdbOuvrir un fichier de base de données DuckDB
harlequin -a sqlite mydb.dbOuvrir une base de données SQLite
harlequin -a sqliteOuvrir une base de données SQLite en mémoire
harlequin -a postgres -h localhost -p 5432 -U user -d mydbSe connecter à PostgreSQL
harlequin -a mysql -h localhost -u root mydbSe connecter à MySQL
harlequin --theme monokaiUtiliser un thème de couleur spécifique
harlequin --locale en_USDéfinir la locale de formatage des nombres
harlequin --helpAfficher toutes les options CLI
ToucheDescription
Ctrl+EnterExécuter la requête courante
Ctrl+jExécuter la requête courante (alternative)
Ctrl+oOuvrir un fichier SQL
Ctrl+sSauvegarder la requête courante dans un fichier
Ctrl+nNouvel onglet de requête
Ctrl+wFermer l’onglet de requête courant
Ctrl+kBasculer vers l’onglet de requête suivant
TabAccepter la suggestion d’autocomplétion
EscapeFermer le menu d’autocomplétion
F1Afficher l’aide / documentation contextuelle
ToucheDescription
Ctrl+rBasculer le focus vers le panneau de résultats
Ctrl+eBasculer le focus vers l’éditeur de requêtes
Touches fléchéesNaviguer dans le tableau de résultats
Ctrl+cCopier la ou les cellules sélectionnées
ToucheDescription
Ctrl+qQuitter Harlequin
Ctrl+bBasculer la barre latérale du catalogue de données
F1Aide

DuckDB est l’adaptateur par défaut et supporte des fonctionnalités puissantes :

-- Lire des fichiers CSV directement
SELECT * FROM read_csv_auto('data.csv');

-- Lire des fichiers Parquet
SELECT * FROM read_parquet('data.parquet');

-- Lire des fichiers JSON
SELECT * FROM read_json_auto('data.json');

-- Interroger des fichiers distants
SELECT * FROM read_csv_auto('https://example.com/data.csv');

-- Interroger des fichiers S3 (avec adaptateur s3)
SELECT * FROM read_parquet('s3://bucket/data.parquet');

-- Agréger des données de plusieurs fichiers
SELECT * FROM read_csv_auto('logs/*.csv');

Créez un fichier de configuration pour sauvegarder les profils de connexion fréquemment utilisés :

# ~/.config/harlequin/config.toml
# (ou utilisez le flag --config pour spécifier le chemin)

[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"]

Utiliser les profils avec :

harlequin --profile local-pg
AdaptateurExtra d’InstallationExemple de Connexion
DuckDB(intégré)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 / GCSs3Parquet/CSV sur stockage cloud
ODBCodbcConnexions ODBC génériques
TrinotrinoClusters Trino/Presto
BigQuerybigqueryGoogle BigQuery
CassandracassandraApache Cassandra
ClickHouseclickhouseBases de données ClickHouse
MotherDuck(via DuckDB)DuckDB cloud
# Exploration rapide de données — ouvrir un CSV comme base de données
harlequin
# Puis dans l'éditeur de requêtes : SELECT * FROM read_csv_auto('data.csv') LIMIT 100;

# Explorer une base de données SQLite (ex. une DB d'application mobile)
harlequin -a sqlite app.db

# Se connecter à Postgres local pour le développement
harlequin -a postgres -h localhost -p 5432 -U dev -d myapp_dev

# Analyser des fichiers Parquet sans les charger dans une base de données
harlequin
# Puis : SELECT * FROM read_parquet('output/*.parquet');
# Installer django-harlequin
pip install django-harlequin

# Lancer Harlequin connecté à votre DB Django
./manage.py harlequin
ProblèmeSolution
Adaptateur introuvableInstaller avec extras : uv tool install 'harlequin[postgres]'
Connexion refuséeVérifier l’hôte, le port, et que le serveur de base de données est en cours d’exécution
Problèmes d’affichageEssayer un terminal différent (Kitty, WezTerm, iTerm2 recommandés)
Lenteur sur grandes tablesUtiliser LIMIT dans les requêtes ; éviter SELECT * sur d’énormes tables
Autocomplétion manquanteAssurez-vous d’être connecté à une base de données avec un schéma
FonctionnalitéHarlequinDBeaverpgcliusql
S’exécute dans le terminalOuiNon (GUI)OuiOui
Multi-base de donnéesOuiOuiPostgres uniquementOui
AutocomplétionOuiOuiOuiNon
Tableau de résultats visuelOuiOuiBasiqueBasique
Requêtes de fichiers (CSV, Parquet)Oui (DuckDB)LimitéNonNon
Profils de configurationOuiOuiOuiNon