SQL クイックリファレンス
必須のSQLコマンドと操作
目次
以下は、SQLに関する簡潔なSQLチートシートです。必須のコマンドと操作をカバーしています。
データのクエリ
特定の列を選択:
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ジョイン操作です。
-
INNER JOIN:
- ジョイン条件に基づいて、両方のテーブルに一致する行のみを返します。
- 他方のテーブルに一致する行がない場合は、それらの行を除外します。
- 両方のテーブルに存在するデータのみを取得したい場合に役立ちます。
-
LEFT JOIN(またはLEFT OUTER JOIN):
- 左のテーブルのすべての行と、右のテーブルに一致する行を返します。
- 右のテーブルに一致する行がない場合でも、左のテーブルの行を含め、右のテーブルの列に対してNULL値を埋めます。
- 左のテーブルのすべてのレコードを確認したい場合、右のテーブルに一致するデータがない場合でも役立ちます。
主な違い:
-
結果セット:
- INNER JOIN: 一致する行のみを返します。
- LEFT JOIN: 左のテーブルのすべての行と、右のテーブルに一致する行を返します。
-
NULL値:
- INNER JOIN: 一致しない行にNULL値は生成されません。
- LEFT JOIN: 右のテーブルに一致しない場合、右のテーブルの列に対してNULL値が生成されます。
-
使用ケース:
- INNER JOIN: 両方のテーブルに存在するデータが必要な場合に使用します。
- LEFT JOIN: 1つのテーブルのすべてのデータと、他方のテーブルに一致するデータが必要な場合に使用します。
-
データの完全性:
- INNER JOIN: 一致しないデータがある場合、データが除外される可能性があります。
- LEFT JOIN: 左のテーブルのすべてのデータを含め、左のテーブルのデータに関するより完全なビューを提供します。
これらの違いを理解することで、特定のデータ取得のニーズや分析の目的に応じて、適切なジョインタイプを選択できます。