1. はじめに
dbx は GitHub でオープンソースとして公開されている無料のデータベースクライアントツールです。Rust で開発されており実行効率が高速で、dBeaver、DataGrip、Aqua Data Studio のようにJava Runtimeを必要とせず、実行ファイル1つだけで動作するため、使い勝手の良さでは他の追随を許しません。日常的にデータベースを扱う方にはぜひ試していただきたいツールです。
dbx には AI Chat 統合が組み込まれており、設定後は現在の接続情報をコンテキストとして設定済みの AI Provider と対話でき、必要な SQL 文を効率的に生成できます。
dbx の実行ファイルがあるフォルダに portable.dbx ファイルが存在する場合、自動的にポータブルモードとなり、data サブディレクトリに dbx.db が生成されて接続などの設定データが保存されます。
今回はまず接続の作成手順を紹介し、次に dbx を使って .json ファイルと .csv ファイルのクエリ・メンテナンスを実演します。SQL 文でテキストファイルの内容を直接クエリします。サンプルには Northwind データを使用しており、テストデータは GitHub で検索してダウンロードできます。
2. UI レイアウト
- 最上部はメニューバー
- 左側は接続ナビゲーションパネル
- 中央はクエリエディタとデータグリッド
- 右側は各種プロパティパネル(AI チャットエリアを含む)
- ほとんどの機能は右クリックコンテキストメニューから操作
3. AI 設定
OpenCode を例にします:
- Provider: OLpenAI Compatible を選択
- API Key: 自分の API Key を貼り付け
- Endpoint:
https://opencode.ai/zen/go/v1 - Model: まず右側の Refresh をクリックし、モデルを選択
- 下部の【Test】を押して接続が正常か確認
dbx には MCP Server が内蔵されており、AI Agent は dbx の MCP API を通じて接続に対して SQL 操作を行えます
4. 接続の作成
SQLite の Northwind.db を例にします。
- 左上の【New Connection】をクリック
- 使用するデータベースの種類を選択し、【SQLite】を選んで右下の【Next >】を押す
- 名前を入力しファイルを指定して、【Save & Connect】を押す
- 接続を右クリック→【New Query】で新しいクエリタブを作成
- テーブルをクリックしてデータブラウザタブを開くことも可能
5. .csv で接続を作成
Northwind の複数の .csv を例にします。
DuckDB データベースは .csv ファイルと .json ファイルを直接読み書きできます
- 左上の【New Connection】をクリック
- 使用するデータベースの種類を選択し、【DuckDB】を選んで右下の【Next >】を押す
- Name: 名前を入力、Color: 識別用の色を選択
- File Path: 右側の Create DuckDB File を押して特定のフォルダにファイルを作成(名前は自由、デフォルトは database.duckdb)
:memory:と入力してメモリ上の一時データベースを作成することも可能
- 【Save & Connect】をクリック
5.1. 単一テーブル
-- すべてのファイル名を取得
SELECT * FROM glob('j:/temp/Northwind/csv/*.csv');
-- ファイルデータをクエリ
select * from 'j:\temp\Northwind\csv\Customers.csv';
5.2. AI を使ってテーブルを作成
- 右上の AI をクリックし、以下のプロンプトを入力して .csv からテーブルを作成する SQL 文を生成
- 実行エラーがあれば【Fix with AI】で正しくなるまで繰り返し修正、またはモデルを変更
j:\temp\Northwind\csv\*.csv を読み取り、各.csvファイルに対して create table ファイル名 as select * from 'ファイルフルパス'; のSQL文を生成してください。
- SQL 文が正常に実行できたら、右クリック→【Copy】→【Copy All (TSV)】(またはCtrl+Cを押す)
- クリップボードの内容をエディタに貼り付け、修正して全選択後に実行
6. .json で接続を作成
Northwind の複数の .json を例にします。
.csv の場合と同様の手順で、.json ファイルに置き換えるだけです。
7. 💡 関連リンク
✅ 解説記事(繁体字中国語): https://jdev.tw/blog/9228/
✅ Explanation article(English)
✅ 解説記事(日本語)
✅ GitHub サイト: https://github.com/t8y2/dbx
8. チュートリアル動画
##