1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

応用情報技術者試験対策:SQL文の基本構文まとめ(DDL/DML/DCL)

Posted at

応用情報試験データベース試験範囲SQL

もうすぐ春の応用情報技術者試験の受験日なので、範囲内のSQLの記載方法についてまとめました
記述問題で、短くはあるもののSQLの記載を求められる問題は多いので、ざっとおさらいします

目次

  1. データ定義言語(DDL)
  2. データ操作言語(DML)
  3. データ制御言語(DCL)
  4. その他
  5. JOIN: テーブルの結合
  6. 副問い合わせ(サブクエリ): クエリ内のクエリ

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);
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?