コマンド道場
コマンドドウジョウ
SQL をブラウザの中で動く本物のデータベースに打ち込んで、実行結果で採点してくれる練習サイト。書き方が違っても、結果が同じなら正解になる。
- 無料
- 登録なし
- Web
- 01 打った SQL はサーバーへ行かない。採点中の通信は0件だった
- 02 書き方を変えても正解になる。カンマ結合に書き直しても通った
- 03 間違えると「期待8行/実際10行」と具体的に返ってくる
SCREEN commanddojo.com の画面を切り抜いたもの 1100×820
- 練習問題
- 123問
- 一覧から数えた実数
- テーマ
- 41個
- 11分野に分かれている
- 方言の対応表
- 65×7マス
- 構文×製品
- 料金
- 0円
- 登録もログインも要らない
何ができるか
問題を開くと、使えるテーブルの定義が全部出ます。列名・型・NULL の可否、
それに先頭5行のデータまで。その下の欄に SQL を書いて Ctrl+Enter で採点します。
採点は文字列の一致ではありません。実行結果が設問の目的を満たしているかで判定します。
実際に確かめました。JOIN … ON で書いた答えと、
それをカンマ結合+ORDER BY 1 に書き換えたもの——
見た目はまったく違いますが、どちらも「正解! 目的を達成しています」になりました。
間違えたときも具体的です。WHERE を書き忘れて出したら、
「行数が違います(期待: 8 行 / 実際: 10 行)」と、
どこがずれたかまで返ってきました。
★ 打った SQL はサーバーへ行きません。 データベース(PostgreSQL)が
ブラウザの中で動いています。採点の前後を通して通信を見張りましたが、
fetch も XMLHttpRequest も sendBeacon も0件でした。
だから登録が要らず、回数の制限もありません。
解説の作りも丁寧です。「結論」「なぜ」「よくある間違い」に分かれていて、 一次情報(PostgreSQL 18 のマニュアル)へのリンクと確認日が付きます。 別ページには 65構文×7製品の方言対応表もあり、 差が出たのは15構文だけ、そのうち未確認の製品が残るものは29構文、と数まで書いてあります。
SCREEN commanddojo.com の画面を切り抜いたもの 1100×440
SCREEN commanddojo.com の画面を切り抜いたもの 1100×690
採点を試した結果
| 試したこと | 判定 | 返ってきた内容 |
|---|---|---|
| JOIN … ON で普通に書く | 正解 | 「正解! 目的を達成しています」 |
| カンマ結合+ORDER BY 1 に書き換える | 正解 | まったく違う書き方でも同じ判定になった |
| WHERE を書き忘れる | 不正解 | 「行数が違います(期待: 8 行 / 実際: 10 行)」 |
| 採点中の通信 | 0件 | SQL はブラウザの外に出ていない |
★ 2026-09-05、INNER JOIN の第1問で実施。🔴 採点の前後を通して fetch / XMLHttpRequest / sendBeacon はいずれも0件だった。「打った SQL がサーバーへ送られることもありません」は、そのとおりだった。
向いている人・向いていない人
向いている人
向いていない人
触ってみて気づいたこと
実行結果の表示で、日付の列が Wed Nov 05 2025 09:00:00 GMT+0900 (日本標準時) と
そのまま出ます。同じ列が、問題ページのサンプル表示では 2025-11-05 と出ているので、
実行結果のほうだけ整形が抜けているようです。
⚠️ SQL を学ぶ場所なので、「PostgreSQL はこう返すのか」と誤解する余地があります。
ここは直したほうがよいと思います。
存在しない URL を開くと、404ページが英語のままでした
(404: This page could not be found.)。
ここまで日本語で作り込んであるので、ここだけ既定のままなのは目立ちます。
ブラウザの中でデータベースを起動する作りなので、問題を開いた直後に 「起動中…」の待ちがあります。上の1枚目の写真に写っているのがその状態です。 ★ 待たされはしますが、これがあるから登録も回数制限も無いので、 引き換えとしては妥当だと思います。
確認の記録
いつ、何を見て書いたかを残しています。 確認していないことは書きません。
-
実行結果の日付が
Wed Nov 05 2025 09:00:00 GMT+0900 (日本標準時)と出ること、同じ列がサンプル表示では2025-11-05と出ることを確認した。存在しない URL(/sql/drill/join/001)で404ページが英語のままであることも確認した。★ 採点ロジックそのものの正しさは、この1問でしか確かめていない。 -
練習問題の一覧から問題数を数えた(123問・41テーマ・11分野)。難易度の★印を集計し、★1が3問・★2が33問・★3が58問・★4が24問・★5が5問であることを確認した。方言の対応表ページで「65構文×7製品、差が出たのは15構文」の記載を確認した。
-
🔴 採点の前後で
fetch/XMLHttpRequest/navigator.sendBeaconを横取りして監視し、 3回の採点を通して通信が0件であることを確認した。SQL はブラウザの外に出ていない。 -
INNER JOIN の第1問(受注と顧客をつなぐ)を3通りで提出した。 JOIN … ON の答えとカンマ結合+ORDER BY 1 の答えの両方が「正解! 目的を達成しています」になり、 WHERE を抜いた答えが「行数が違います(期待: 8 行 / 実際: 10 行)」で不正解になることを確認した。