コマンド道場

$ psql commanddojo

SQL

書いた SQL はブラウザの中でその場で実行されます。サーバーに送られることはありません。 採点は文字列の一致ではなく実行結果で行うので、書き方が違っても目的を達成していれば正解です。

書き方が違っても、結果が同じなら正解

結合で書く

SELECT s.name, s.salary
FROM shain s
  JOIN busho b ON b.busho_id = s.busho_id
WHERE b.busho_name = '開発'
ORDER BY s.salary DESC

副問い合わせで書く

SELECT name, salary
FROM shain
WHERE busho_id = (SELECT busho_id
                  FROM busho
                  WHERE busho_name = '開発')
ORDER BY salary DESC

どちらも同じ結果(4 行)

namesalary
佐藤720000
中村530000
田中520000
小林445050

採点は文字列の一致では行いません。下の 2 つはまったく違う書き方ですが、実行すると同じ 4 行が返るので、どちらも正解として扱われます。

どの製品を使っていても学べます
基本構文は製品をまたいでほとんど同じです。主要 7 製品で調べた 70 構文のうち、書き方が分かれるのは 18 構文だけでした(残りは差が見つからず、うち 21 構文は全製品で確認済みです)。 練習問題は標準 SQL 中心で作っており、どの製品でそのまま通るかを問題ごとに表示しています。書き方が根本から違うものは、その問題の中で違いを説明します。製品ごとの比較表を見る
なお、この画面で実際に動くデータベースは 1 つです。特定の製品にしかない書き方は、ここでは通りません。その場合は、その製品での書き方を各問題に載せています。

学ぶ

使い方の解説

句や構文を、実際のデータと実行結果で 1 つずつ。図も実物から作っています。

解く

練習問題

トピック別のドリル。実行結果で採点し、間違えた理由も返します。

打つ

自由に試す

サンプルのテーブルが入った本物のデータベースに、好きな SQL を打てます。

比べる

方言の違い

同じ SQL が主要 7 製品でそのまま通るかの一覧。どこまでが共通かが分かります。

動かす

ブラウザの中の Linux

本物の Alpine Linux が起動し、本物のデータベースを psql や pg_ctl から操作できます。

引く

関数リファレンス

関数・演算子を 1 つずつ。呼び出しの形と落とし穴を、実行結果つきで引けます。

トピックから探す

「何を使うか」で分類しています。問題があるトピックだけを表示しています。

CTE(共通表式)