例
SQLite エンジンはブラウザ内に読み込まれます。データはどこにも送信されません。
⌘/Ctrl + ↵
クエリを実行すると結果が表示されます。
機能の説明
SQL Playground では、本物の SQL クエリをブラウザー内で直接書いて実行できます — インストール不要、サインアップ不要、データがマシンの外に出ることもありません。クエリ可能なサンプルデータベース(users + orders)を同梱しているため、ページが読み込まれた瞬間から join、集計、フィルターを試せます。独自のスキーマにはいつでも差し替えでき、データベースはその場で再構築されます。
sql.js — WebAssembly にコンパイルされた完全な SQLite エンジン — によって動作します。つまり、トランザクション、制約、集計、サブクエリを含む本物の SQL 挙動が 100% クライアント側で得られます。結果は行数とタイミング付きのクリーンなテーブルに表示され、CSV、JSON、Markdown としてワンクリックでエクスポートできます。
使い方
- 左の Schema パネルにはサンプルの
users+ordersデータベースが事前読み込みされています。自由に編集できます — 入力を止めるとデータベースが自動再構築され、緑の「applied」バッジで成功が確認できます。 - 右の Query パネルに SQL を書きます — どちらのエディターもタイプ中に SQL 構文をハイライトします — または、example query chips(Select all、Filter、Aggregate、Join、Sort + limit、CTE、Subquery、Having、Like + order、Union)の 1 つをクリックしてプリビルトのクエリを読み込みます。
- Run をクリック(または ⌘/Ctrl + Enter を押下)して実行します。
- 下の Results テーブルを読みます — 列ヘッダー、型付きの値(NULL は独自のスタイル)、行数、SELECT クエリに対する read-only バッジ、経過時間(ミリ秒)が表示されます。
- CSV / JSON / Markdown トグル + Copy results で、好みの形式で出力をエクスポートします。
- Copy share link をクリックすると、現在のスキーマとクエリが URL にエンコードされます — リンクを開いた人は、あなたの正確なセットアップをそのまま見られます。
例
2 つのテーブルを結合して集計
SELECT u.name, u.role, COUNT(o.id) AS orders, SUM(o.amount) AS total
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY total DESC;
各ユーザーを注文数と合計支出付きで、合計の降順に返します。注文のないユーザーは 0 / NULL 付きで現れます。
サブクエリでフィルター
SELECT name, email FROM users
WHERE id IN (SELECT user_id FROM orders WHERE amount > 20);
20 ドルを超える注文をしたことのあるユーザーのみを返します。
テーブル構造の確認
PRAGMA table_info(users);
users テーブルのすべての列について、列インデックス、名前、型、NULL 許容、デフォルト値を返します — 見慣れないスキーマの探索に便利です。
補足事項
- 100% クライアント側。 SQL とデータがブラウザーの外に出ることはありません — すべて sql.js(WebAssembly にコンパイルされた SQLite)でローカルに実行されます。機密性の高いスキーマでも安全です。
- ライブスキーマ編集。 Schema パネルを変更すると、データベースが自動的に再構築されます(デバウンス付き)。エラーはインラインで表示され — スキーマが再び有効になるまで、クエリは無効のままです。
- SQLite 方言。 これは本物の SQLite です — ウィンドウ関数、CTE、JSON 関数、SQLite 機能セットの大半が使えます。一部のもの(ストアドプロシージャ、MySQL/Postgres 固有の構文)はサポートされません。
- 共有可能。 スキーマとクエリが URL にエンコードされるため、共有リンクがプレイグラウンドの正確な状態を再現します。
- 関連ツール: Regex Tester、JSON Formatter。