SQL PRACTICE

ブラウザ完結のSQLトレーニング環境

Master Tables (Read Only)
{{ table.name }} テスト用データ
{{ col }}
{{ val }}
Query Result (Visual)
{{ queryError }}
{{ col }}
{{ val }}
SQL Input
Ctrl + Enter で実行可能
Raw Result Data (JSON)
{{ queryResult }}

INFORMATION

基本構文 - Basic Syntax
SELECT / FROM / WHERE 列とテーブルを指定し、条件で行を絞り込みます。 SELECT name, age FROM users WHERE age >= 25; SELECT * FROM orders WHERE price > 10000;
ORDER BY / LIMIT 結果の並び替えと取得件数の制限。 SELECT * FROM users ORDER BY age DESC; SELECT * FROM orders LIMIT 3;
DISTINCT 重複した行を除外して一意の値を取得。 SELECT DISTINCT city FROM users;
高度な構文 - Advanced Syntax
GROUP BY / HAVING グループ化とグループ化後のフィルタ。 SELECT city, COUNT(*) FROM users GROUP BY city; SELECT user_id, SUM(price) FROM orders GROUP BY user_id HAVING SUM(price) > 50000;
JOIN (INNER / LEFT / FULL) 複数テーブルを関連する列で結合。 SELECT u.name, o.item FROM users u JOIN orders o ON u.id = o.user_id; SELECT u.name, o.item FROM users u LEFT JOIN orders o ON u.id = o.user_id;
UNION / INTERSECT 複数の結果セットを統合または積集合を取得。 SELECT id FROM table_a UNION SELECT id FROM table_b;
ウィンドウ関数 - Window Functions
ROW_NUMBER / RANK / DENSE_RANK 行番号や順位の付与。 SELECT name, ROW_NUMBER() OVER(ORDER BY age DESC) FROM users; SELECT item, RANK() OVER(ORDER BY price DESC) FROM orders;
LAG / LEAD / PARTITION BY 前後行の参照や範囲の分割計算。 SELECT name, age, LAG(age) OVER(ORDER BY age) FROM users; SELECT name, city, SUM(age) OVER(PARTITION BY city) FROM users;
条件分岐とサブクエリ - Conditional & Subqueries
CASE WHEN 条件に応じた値の出し分け(条件分岐)。 SELECT name, CASE WHEN age >= 20 THEN 'Adult' ELSE 'Child' END FROM users;
WITH (CTE) 一時的な結果セットを定義(共通テーブル式)。 WITH high_sales AS (SELECT * FROM orders WHERE price > 1000) SELECT * FROM high_sales;
EXISTS / IN サブクエリの結果に存在するかを判定。 SELECT * FROM users WHERE id IN (SELECT user_id FROM orders);
データ操作 - Data Manipulation
INSERT INTO テーブルに新しいレコードを追加。 INSERT INTO users (name, age) VALUES ('Tanaka', 30);
UPDATE / SET 既存のレコードの内容を更新。 UPDATE users SET age = 31 WHERE name = 'Tanaka';
DELETE 条件に一致するレコードを削除。 DELETE FROM users WHERE id = 10;
関数と演算子 - Functions & Operators
LIKE / ILIKE パターンマッチング(部分一致検索)。 SELECT * FROM users WHERE name LIKE 'S%';
COALESCE NULL値を指定したデフォルト値に置換。 SELECT COALESCE(phone, 'No Number') FROM users;
CAST / CONVERT データ型の変換。 SELECT CAST(price AS SIGNED) FROM orders;