プログラミング
Show HN: グラフィカルなSQLビルダーとデバッガー
Show HN: Graphical SQL Builder and Debugger (github.com)
要約
SQL Joinerは、MySQL用のビジュアルSQLクエリビルダーです。テーブルをキャンバスにドラッグし、結合線で接続し、条件を設定することで、手動でSQLを書くことなくSELECTクエリを構築できます。PHP 8+を必須とし、Electronによるデスクトップアプリとしても利用可能で、既存のSQLをインポートして視覚化する機能も備えています。
全文翻訳
SQL JoinerはMySQL用のビジュアルSQLクエリビルダーです。テーブルをキャンバスにドラッグし、結合で接続し、条件を設定することで、手動でSQLを書くことなくSELECTクエリを構築できます。
機能
ビジュアルキャンバス — サイドバーからキャンバスにテーブルをドラッグし、列間に結合線を描画します
結合タイプ — INNER、LEFT、RIGHT、FULL OUTER、CROSS
SELECTビルダー — 列を視覚的に選択するか、生のSQLモードに切り替えます。列エイリアス、DISTINCT、カスタム式、アルファベット順ソートをサポートします
WHERE / GROUP BY / HAVING / ORDER BY — 各句のビジュアルモードまたは生のSQLモード
サブクエリ — サブクエリをキャンバス上の名前付きテーブルとして追加します
SQLのインポート — 既存のクエリを貼り付けて、キャンバスにリバースエンジニアリングします
コンテキスト — キャンバスの状態(テーブル、結合、条件)を保存および復元します
メモ — コンテキストにフリーフォームのメモを添付します
接続プロファイル — 複数のMySQL接続プロファイルを保存し、トップバーから切り替えます
クエリキャンセル — 実行中のクエリを途中でキャンセルします
結果グリッド — ページネーションされた結果とクリップボードへのコピーをサポートします
キャンバス検索 — テーブル、エイリアス、結合、またはアイランドラベルを検索します
技術スタック
レイヤー | テクノロジー
------------ | ------------
デスクトップシェル | Electron (オプション)
バックエンド | PHP (組み込みCLIサーバー)
フロントエンド | Vanilla JS + Canvas API
要件
PHP 8+ — 必須(唯一の厳密な依存関係)
Node.js + Electron — オプション、デスクトップアプリラッパーが必要な場合、またはインストーラーをビルドする場合にのみ必要です
パッケージ化されたアプリ:PHPバイナリがバンドルされています(WindowsおよびMacビルドにはphp-bin/の下に同梱)
開始方法
Electronなし(PHPのみ)
アプリを実行する最も簡単な方法 — PHPのみ:
```
cd app
php -S localhost:8080
```
次に、ブラウザでhttp://localhost:8080を開きます。
Electronあり(デスクトップアプリ)
```
npm install
npm start
```
インストーラーのビルド
Node.jsが必要です。
```
npm run build:mac # macOS DMG
npm run build:win # Windows installer (NSIS)
npm run build:linux # Linux AppImage
```
出力はdist/に出力されます。
プロジェクト構造
```
app/
src/
Core/ Request, Response, ContextManager, AboutManager
Database/ Connection (PDO), ProfileManager, SchemaInspector
Query/ QueryBuilder, QueryParser, JoinClause, WhereClause, GroupByClause, HavingClause, OrderByClause
assets/
js/ Canvas, joins, islands, autocomplete, undo/redo, results, profiles, api
storage/ Connection profiles and saved contexts (JSON)
electron/
main.js Electron entry — starts the PHP server, opens the window
php-bin/ Bundled PHP binaries (win/, mac/, linux/)
```
接続プロファイル
プロファイルはapp/storage/profiles.jsonに保存されます。各プロファイルにはホスト、ポート、データベース、ユーザー、パスワードが含まれます。トップバーの「Profiles」から管理します。