SQL チートシート - 最も役立つ SQL コマンド

必須のSQLコマンドと操作

目次

以下は、SQLに関する簡潔なSQLチートシートです。最も重要なコマンドと操作が網羅されています。

SQLのプロフェッショナルにとっては新しい内容は見つからないかもしれませんが、DB開発に初めて触れる方にとっては役立つかもしれません。

sql in a gothic cathedral

データのクエリリング

特定の列を選択:

SELECT column1, column2 FROM table_name;

すべての列を選択:

SELECT * FROM table_name;

重複した値を選択:

SELECT DISTINCT column1, column2 FROM table_name;

データをフィルタリング:

SELECT column1, column2 FROM table_name WHERE condition;

データをソート:

SELECT column1, column2 FROM table_name ORDER BY column1 [ASC|DESC];

データの変更

行を挿入:

INSERT INTO table_name (column1, column2) VALUES (value1, value2);

データを更新:

UPDATE table_name SET column1 = value1 WHERE condition;

データを削除:

DELETE FROM table_name WHERE condition;

テーブル操作

テーブルを作成:

CREATE TABLE table_name (
    column1 datatype PRIMARY KEY,
    column2 datatype,
    column3 datatype
);

テーブルを変更:

ALTER TABLE table_name ADD column_name datatype;

テーブルを削除:

DROP TABLE table_name;

ジョイン

インナージョイン:

SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;

レフトジョイン:

SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;

集計関数

行をカウント:

SELECT COUNT(*) FROM table_name;

値を合計:

SELECT SUM(column_name) FROM table_name;

値の平均:

SELECT AVG(column_name) FROM table_name;

グループ化:

SELECT column1, COUNT(*) FROM table_name GROUP BY column1;

サブクエリ

SELECT内でサブクエリ:

SELECT column1, (SELECT AVG(column2) FROM table2) AS avg_col2 FROM table1;

WHERE内でサブクエリ:

SELECT * FROM table1 WHERE column1 IN (SELECT column2 FROM table2);

ビュー

ビューを作成:

CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;

ビューを削除:

DROP VIEW view_name;

このチートシートは、最もよく使われるSQLコマンドと操作をカバーしています。

クエリリング、データの変更、テーブル操作、ジョイン、集計関数、サブクエリ、ビューに関するクイックリファレンスを提供します。

インナージョインとアウタージョインの違い

INNER JOINとLEFT JOINは、複数のテーブルからのデータをどのように結合するかという点で異なる、2つの一般的なSQLジョイン操作です。

  1. INNER JOIN:

    • 両方のテーブルに一致する行のみを返します。
    • もう一方のテーブルに一致する行がない場合は、それらの行は除外されます。
    • 両方のテーブルに存在するデータのみを取得したい場合に有用です。
  2. LEFT JOIN (またはLEFT OUTER JOIN):

    • 左のテーブルのすべての行と、右のテーブルに一致する行を返します。
    • 右のテーブルに一致する行がない場合でも、左のテーブルの行は返され、右のテーブルの列にはNULL値が入ります。
    • 左のテーブルのすべてのレコードを確認し、右のテーブルに一致するデータがなくても確認したい場合に有用です。

主な違い:

  1. 結果セット:

    • INNER JOIN: 一致する行のみを返します。
    • LEFT JOIN: 左のテーブルのすべての行と、右のテーブルに一致する行を返します。
  2. NULL値:

    • INNER JOIN: 一致しない行にはNULL値を生成しません。
    • LEFT JOIN: 右のテーブルに一致しない行では、右のテーブルの列にNULL値を生成します。
  3. 使用ケース:

    • INNER JOIN: 両方のテーブルに存在するデータが必要な場合に使用します。
    • LEFT JOIN: 1つのテーブルのすべてのデータと、もう1つのテーブルに一致するデータが必要な場合に使用します。
  4. データの完全性:

    • INNER JOIN: 一致しないデータがある場合、データが除外される可能性があります。
    • LEFT JOIN: 左のテーブルのすべてのデータを含め、左のテーブルのデータに関するより完全なビューを提供します。

これらの違いを理解することで、特定のデータ取得のニーズや分析の目的に応じて、適切なジョインタイプを選択できます。

有用なリンク