応用情報試験データベース試験範囲SQL
もうすぐ春の応用情報技術者試験の受験日なので、範囲内のSQLの記載方法についてまとめました
記述問題で、短くはあるもののSQLの記載を求められる問題は多いので、ざっとおさらいします
目次
1. データ定義言語(DDL)
- CREATE TABLE: 新しいテーブルの作成
CREATE TABLE テーブル名 (
カラム名1 データ型,
カラム名2 データ型,
カラム名3 データ型
);
- ALTER TABLE: 既存テーブルの構造変更
ALTER TABLE テーブル名
ADD COLUMN カラム名4 データ型;
- DROP TABLE: テーブルの削除
DROP TABLE テーブル名;
2. データ操作言語(DML)
- SELECT: データの照会
SELECT カラム名1, カラム名2
FROM テーブル名
WHERE 条件;
-
ORDER BY: 結果の並べ替え
ORDER BY
句は、クエリ結果を指定したカラムの値で並べ替える際に使用します。
SELECT * FROM employees ORDER BY salary DESC;
-
HAVING: グループ化後の条件指定
HAVING
句は、GROUP BY
でグループ化した後に、そのグループに対する条件を指定する際に使用します。
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 5000;
- INSERT: データの挿入
INSERT INTO テーブル名 (カラム名1, カラム名2)
VALUES (値1, 値2);
- UPDATE: データの更新
UPDATE テーブル名
SET カラム名1 = 新しい値
WHERE 条件;
- DELETE: データの削除
DELETE FROM テーブル名
WHERE 条件;
3. データ制御言語(DCL)
- GRANT: ユーザーへの権限付与
GRANT 権限 TO ユーザー名;
- REVOKE: ユーザーからの権限剥奪
REVOKE 権限 FROM ユーザー名;
4. その他
- CASE式: 条件式の使用
SELECT CASE
WHEN 条件 THEN 結果1
ELSE 結果2
END AS エイリアス
FROM テーブル名;
- COALESCE関数: NULL値の処理
SELECT COALESCE(カラム名, デフォルト値) AS エイリアス
FROM テーブル名;
- NULLIF関数: NULL値の比較
SELECT NULLIF(カラム名1, カラム名2) AS エイリアス
FROM テーブル名;
5. JOIN: テーブルの結合
-
内部結合(INNER JOIN): 両方のテーブルに一致するデータのみを取得します。
SELECT employees.first_name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.id;
-
外部結合(OUTER JOIN): 片方のテーブルにのみ存在するデータも含めて取得します。
SELECT employees.first_name, departments.department_name FROM employees LEFT OUTER JOIN departments ON employees.department_id = departments.id;
-
自己結合(SELF JOIN): 同じテーブルを2回使用して、関連するデータを結合します。
SELECT e1.first_name AS Employee, e2.first_name AS Manager FROM employees e1 LEFT JOIN employees e2 ON e1.manager_id = e2.id;
6. 副問い合わせ(サブクエリ): クエリ内のクエリ
SELECT first_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);