$ 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 行)
| name | salary |
|---|---|
| 佐藤 | 720000 |
| 中村 | 530000 |
| 田中 | 520000 |
| 小林 | 445050 |
採点は文字列の一致では行いません。下の 2 つはまったく違う書き方ですが、実行すると同じ 4 行が返るので、どちらも正解として扱われます。
どの製品を使っていても学べます
基本構文は製品をまたいでほとんど同じです。主要 7 製品で調べた 70 構文のうち、書き方が分かれるのは 18 構文だけでした(残りは差が見つからず、うち 21 構文は全製品で確認済みです)。 練習問題は標準 SQL 中心で作っており、どの製品でそのまま通るかを問題ごとに表示しています。書き方が根本から違うものは、その問題の中で違いを説明します。製品ごとの比較表を見る
なお、この画面で実際に動くデータベースは 1 つです。特定の製品にしかない書き方は、ここでは通りません。その場合は、その製品での書き方を各問題に載せています。
学ぶ
使い方の解説
句や構文を、実際のデータと実行結果で 1 つずつ。図も実物から作っています。
解く
練習問題
トピック別のドリル。実行結果で採点し、間違えた理由も返します。
打つ
自由に試す
サンプルのテーブルが入った本物のデータベースに、好きな SQL を打てます。
比べる
方言の違い
同じ SQL が主要 7 製品でそのまま通るかの一覧。どこまでが共通かが分かります。
動かす
ブラウザの中の Linux
本物の Alpine Linux が起動し、本物のデータベースを psql や pg_ctl から操作できます。
引く
関数リファレンス
関数・演算子を 1 つずつ。呼び出しの形と落とし穴を、実行結果つきで引けます。
トピックから探す
「何を使うか」で分類しています。問題があるトピックだけを表示しています。