IPA情報処理試験キーワード

IPA|情報処理技術者試験

データベースで使用されるキーワードの記述ルールまとめ

p>本記事は、実務と試験双方で混乱しやすいSQLの“細かい書き方”を、共通原則 → 句・構文ごとのルール → 覚え方 → すぐ使える例の順で整理した総まとめです。WordPressコードエディタにそのまま貼り付けて使えます。

🧱 1. データ定義(DDL:CREATE / ALTER / DROP)

区分 構文 書き方・覚え方
テーブル作成 CREATE TABLE 型には()、文字列は''、関数は素 CREATE TABLE users (id INT, name VARCHAR(50));
主キー PRIMARY KEY 複数列可(PRIMARY KEY (a,b) PRIMARY KEY (id)
外部キー FOREIGN KEY ... REFERENCES 子→親を参照 FOREIGN KEY (dept_id) REFERENCES dept(id)
制約名 CONSTRAINT 名 明示命名(管理に便利) CONSTRAINT fk_user FOREIGN KEY ...
ON DELETE / UPDATE CASCADE / SET NULL / RESTRICT / NO ACTION / SET DEFAULT ドミノ/孤児/禁止/同義/初期化
デフォルト値 DEFAULT 値 文字は''、関数は素書き DEFAULT 'A', DEFAULT CURRENT_TIMESTAMP
NOT NULL 空値禁止 NULLは許可
UNIQUE 重複禁止 複合キー可
CHECK 値の範囲制約 条件式で指定 CHECK (age >= 0)
AUTO INCREMENT系 DB依存 (SERIAL, IDENTITY, AUTO_INCREMENT) 整数主キー向け
ALTER TABLE 列追加・削除・制約変更 ALTER TABLE ... ADD COLUMN ...
DROP TABLE テーブル削除 IF EXISTSで安全化

📦 2. データ操作(DML:SELECT / INSERT / UPDATE / DELETE)

操作 構文 覚え方・注意点
SELECT SELECT 列 FROM 表 WHERE 条件 クォートは文字だけ '...'
WHERE句 比較・論理式 AND / OR / NOT WHERE age >= 20 AND gender='M'
LIKE あいまい検索 %=任意文字列、_=1文字 LIKE 'A%'
BETWEEN 範囲指定(含む) A BETWEEN 10 AND 20
IN 複数一致 IN ('A','B')
IS NULL / IS NOT NULL NULL比較専用 =では判定不可
ORDER BY 並び替え ASC/ DESC省略可 ORDER BY age DESC
GROUP BY 集約単位 SELECT内に非集約列はNG
HAVING 集約後の条件 WHEREの後のフィルタ
LIMIT / OFFSET 件数・ページング MySQL/PG対応 LIMIT 10 OFFSET 20
INSERT INSERT INTO 表(列...) VALUES(...) 列順と値順を一致
UPDATE UPDATE 表 SET 列=値 WHERE 条件 WHERE省略=全更新注意
DELETE DELETE FROM 表 WHERE 条件 WHERE省略=全削除注意

⚙️ 3. データ制御(DCL:GRANT / REVOKE / TRANSACTION)

区分 構文 意味・覚え方
権限付与 GRANT 権限 ON 対象 TO ユーザ “贈る”→GRANT GRANT SELECT ON users TO user1;
権限取り消し REVOKE 権限 ON 対象 FROM ユーザ “取り上げる”→REVOKE
再配布許可 WITH GRANT OPTION 権限を他人にも与えられる
ロール付与 GRANT 役割 TO ユーザ 管理単位
トランザクション開始 BEGIN / START TRANSACTION 一連の処理をまとめる
確定 COMMIT 永続化
取り消し ROLLBACK 直前状態に戻す
SAVEPOINT 部分戻し用ポイント ROLLBACK TO SAVEPOINT

🧮 4. 集約関数・ウィンドウ関数(OVER句)

分類 関数 意味 注意
集約関数 SUM(), AVG(), MAX(), MIN(), COUNT() 集団計算 NULLは除外
ウィンドウ関数 RANK(), ROW_NUMBER(), LAG(), LEAD(), SUM() OVER() 行単位集計 OVER()で範囲指定
OVER句 OVER (PARTITION BY ... ORDER BY ...) 区切り+順序 ORDER BYが範囲定義
WINDOW句 WINDOW win AS (...) 再利用可能なウィンドウ定義 SELECT句の後で定義

🔸 覚え方:「OVERは窓」「PARTITIONでグループ」「ORDERで並べ替え」


🔗 5. 結合・副問合せ

区分 構文 意味 ポイント
INNER JOIN 両方に存在するデータのみ 最も一般的 ONで結合条件
LEFT JOIN 左を全残し NULL埋め
RIGHT JOIN 右を全残し
FULL JOIN 両方全残し DB依存(MySQL非対応)
CROSS JOIN 全組み合わせ 条件なし結合
UNION / UNION ALL 結果セット結合 ALLは重複許可
EXISTS サブクエリ存在確認 EXISTS (SELECT ...)
ANY / ALL 比較サブクエリ =ANY(...), >ALL(...)
FROM (SELECT...) AS 別名 派生表 サブクエリを仮テーブルに

🧩 6. その他の構文・関数・修飾句

キーワード 意味 注意・覚え方
DISTINCT 重複除去 集約時の平均で注意
CASE WHEN THEN ELSE END 条件分岐 IFの代わり
CAST / CONVERT 型変換 '2025-01-01'::DATE (PG)
COALESCE / NVL NULL置換 COALESCE(a,b)
ISNULL() NULL判定関数(DB依存)
EXPLAIN / EXPLAIN ANALYZE 実行計画確認 性能チューニング用
TRUNCATE TABLE 全削除(ログ残らず高速) WHERE不可
COMMENT ON コメント付加(PG) COMMENT ON COLUMN users.name IS 'ユーザ名';
INDEX インデックス作成 CREATE INDEX idx_name ON table(column)
VIEW 仮想テーブル CREATE VIEW v AS SELECT ...
MATERIALIZED VIEW 実体を持つビュー 更新必要
SEQUENCE 自動採番オブジェクト PG専用

🧠 7. 書き方ルール・括弧/クォーテーションの法則

種類 記号 用途
( ) 括弧 関数・型サイズ・サブクエリ・条件 COUNT(*), VARCHAR(50), (SELECT...)
' ' シングルクォート 文字列リテラル 'abc'
" " ダブルクォート 識別子(列・表名)※SQL標準 "user"
バッククォート MySQL固有識別子 `user`
; ステートメント終端 コマンド区切り
. スキーマ・表・列の階層指定 schema.table.column
:: 明示型変換(PostgreSQL) '100'::INTEGER
--, // ** コメント -- 行コメント, /* ブロック */

🔥 8. 丸暗記系フレーズで整理(直感イメージ)

意味 フレーズ
型定義 「型に()、値に''、関数は素で」
制約削除 「CASCADEで巻き添え、RESTRICTで止める」
権限 「GRANTで贈る、REVOKEで奪う」
比較 「LIKEでゆるく、%で無限、_で1文字」
NULL処理 「IS NULLは=じゃない、COALESCEで代入」
集約 「GROUPでまとめ、HAVINGで絞る」
トランザクション 「BEGINしてCOMMIT、失敗はROLLBACK」
JOIN 「INNERが通常、LEFTで全残し」
デフォルト 「静的値は''、動的は素」
ORDER句 「昇順ASC、降順DESC、複数可」

🗂️ 9. 覚える優先度(試験・実務別)

レベル 優先キーワード
⭐初級 SELECT / WHERE / ORDER / INSERT / UPDATE / DELETE / LIKE / IN / IS NULL
⭐⭐中級 JOIN / GROUP / HAVING / CASE / DEFAULT / FOREIGN KEY / ON DELETE
⭐⭐⭐上級 WINDOW句 / TRANSACTION制御 / GRANT / REVOKE / VIEW / INDEX / CASCADE / SUBQUERY

✅ 10. まとめ:SQL記述ルールの黄金律(語感で暗記)

型に()、値に''、関数は素。
止める(RESTRICT)、流す(CASCADE)。
贈る(GRANT)、奪う(REVOKE)。
LIKEは曖昧、%は自由、_は1文字。
IS NULLは特別、=ではない。
OVERは窓、PARTITIONは部屋。
ROLLBACKは時間を戻す魔法。

-IPA|情報処理技術者試験
-