SQL チート シート - 初心者向けの 9 つの重要な SQL 構文
Published on
![SQL はリレーショナル データベースを管理するための標準言語です。この記事では、初心者向けの 10 の重要な SQL 構文の包括的なチート シートを提供します。SQL の代替である RATH も、データ分析と視覚化のために紹介されています。](/_next/image?url=https%3A%2F%2Fdocs-us.oss-us-west-1.aliyuncs.com%2Fimg%2Fblog-cover-images%2F2023-2-9.png%3Fx-oss-process%3Dimage%2Fresize%2Climit_0%2Cm_fill%2Cw_1536%2Ch_1024%2Fquality%2Cq_100&w=3840&q=75)
SQL (Structured Query Language) は、リレーショナル データベースの管理に使用される標準言語です。 これは、データベース管理に使用される最も一般的な言語であり、データベースを扱うすべての人にとって不可欠なスキルです。 初心者でも経験豊富なデータベース開発者でも、データベースを操作する際に参照できる SQL チート シート があると便利です。 この記事では、すべての初心者が知っておくべき 10 の最も重要な SQL 構文 をカバーする包括的な SQL チート シートを提供します。
9 初心者が知っておくべき SQL 構文
1.SELECT文
SELECT ステートメントは最も一般的に使用される SQL コマンドであり、データベースからデータを取得するために使用されます。 これは、データベースからデータを取得するために使用される基本的なコマンドです。 SELECT ステートメントの構文は次のとおりです。
SELECT column1, column2, ...
FROM table_name;
Here, column1
, `column2, ... specify the columns you want to retrieve, and table_name specifies the table from which you want to retrieve the data.
ここで、「column1」、「column2」、... は取得する列を指定し、table_name はデータを取得するテーブルを指定します。
2.WHERE句
WHERE 句は、SELECT ステートメントによって返されるデータをフィルター処理するために使用されます。 データを返すために満たす必要がある条件を指定できます。 WHERE 句の構文は次のとおりです。
SELECT column1, column2, ...
FROM table_name
WHERE column = value;
ここで、「column = value」は、データが返されるために満たす必要がある条件を指定します。
3. AND および OR 演算子
AND および OR 演算子は、複数の条件を組み合わせるために WHERE 句で使用されます。 AND 演算子は、すべての条件を満たす行のみを返しますが、OR 演算子は、条件の少なくとも 1 つを満たす行を返します。 AND および OR 演算子の構文は次のとおりです。
SELECT column1, column2, ...
FROM table_name
WHERE column1 = value1 AND column2 = value2;
SELECT column1, column2, ...
FROM table_name
WHERE column1 = value1 OR column2 = value2;
4. GROUP BY 句
GROUP BY 句は、1 つ以上の列に基づいて SELECT ステートメントによって返されるデータをグループ化するために使用されます。 これは、COUNT、SUM、AVG、MIN、MAX などの集計関数でよく使用されます。 GROUP BY 句の構文は次のとおりです。
SELECT column1, COUNT(column2)
FROM table_name
GROUP BY column1;
ここでは、column1 を使用してデータをグループ化し、COUNT(column2) は各グループの column2 の出現回数を返します。
5. HAVING句
HAVING 句は、GROUP BY 句によって返されるデータをフィルタリングするために使用されます。 データを返すために満たす必要がある条件を指定できます。 HAVING 句の構文は次のとおりです。
SELECT column1, COUNT(column2)
FROM table_name
GROUP BY column1
HAVING COUNT(column2) > value;
ここで、COUNT(column2) > value は、データが返されるために満たす必要がある条件を指定します。
6. ORDER BY 句
ORDER BY 句は、結果セットを昇順または降順で並べ替えるために使用されます。 この句はオプションです。ORDER BY 句を指定しない場合、結果セットはデフォルトで昇順でソートされます。 ORDER BY 句の構文は次のとおりです。
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
上記の構文では、column1、column2 などは結果セット内の列の名前であり、ASC および DESC を使用して並べ替え順序を指定します。 ASC を使用すると結果セットは昇順でソートされ、DESC を使用すると結果セットは降順でソートされます。
たとえば、次のデータを持つ、students という名前のテーブルがあるとします。
+----+--------+--------+
| id | name | marks |
+----+--------+--------+
| 1 | Alice | 90 |
| 2 | Bob | 80 |
| 3 | Charlie| 95 |
| 4 | Dave | 85 |
+----+--------+--------+
結果セットをマーク列で昇順に並べ替える場合は、次の SQL ステートメントを使用できます。
SELECT *
FROM students
ORDER BY marks ASC;
結果セットは次のようになります。
+----+--------+--------+
| id | name | marks |
+----+--------+--------+
| 2 | Bob | 80 |
| 4 | Dave | 85 |
| 1 | Alice | 90 |
| 3 | Charlie| 95 |
+----+--------+--------+
結果セットをマーク列で降順に並べ替える場合は、次の SQL ステートメントを使用できます。
SELECT *
FROM students
ORDER BY marks DESC;
結果セットは次のようになります。
+----+--------+--------+
| id | name | marks |
+----+--------+--------+
| 3 | Charlie| 95 |
| 1 | Alice | 90 |
| 4 | Dave | 85 |
| 2 | Bob | 80 |
+----+--------+--------+
上記の例では、結果セットはマーク列によって降順でソートされるため、最高のマークが最初に表示されます。
ORDER BY 句は、複数の列に基づいて結果セットをソートできることに注意してください。 たとえば、結果セットをマーク列で降順で並べ替え、次に名前列で昇順に並べ替える場合は、次の SQL ステートメントを使用できます。
SELECT *
FROM students
ORDER BY marks DESC, name ASC;
結果セットは次のようになります。
+----+--------+--------+
| id | name | marks |
+----+--------+--------+
| 3 | Charlie| 95 |
| 1 | Alice | 90 |
| 4 | Dave | 85 |
| 2 | Bob | 80 |
+----+--------+--------+
7. GROUP BY 句
GROUP BY 句は、1 つ以上の列の値に基づいて結果セット内の行をグループ化するために使用されます。 この句は、グループ化されたデータに対して計算を実行するために、SUM、AVG、MIN、MAX などの集計関数と組み合わせて使用されることがよくあります。 GROUP BY 句の構文は次のとおりです。
SELECT column1, aggregate_function(column2), ...
FROM table_name
GROUP BY column1;
上記の構文で、column1 は行のグループ化に基づく列の名前、aggregate_function は SUM、AVG、MIN、MAX などの集計関数、column2 は集計の対象となる列の名前です。 機能が実行されます。
たとえば、次のデータを含む sales という名前のテーブルがあるとします。
+----+--------+-------+
| id | date | sales |
+----+--------+-------+
| 1 | 2021-01-01 | 100 |
| 2 | 2021-01-02 | 150 |
| 3 | 2021-01-03 | 200 |
| 4 | 2021-02-01 | 175 |
| 5 | 2021-02-02 | 225 |
+----+--------+-------+
月ごとの総売上高を知りたい場合は、次の SQL ステートメントを使用できます。
SELECT DATE_FORMAT(date, '%Y-%m') AS month, SUM(sales) AS total_sales
FROM sales
GROUP BY month;
8. HAVING句
HAVING 句は、集計関数で指定された条件に基づいて結果セットをフィルター処理するために使用されます。 WHERE 句と同様に機能しますが、GROUP BY 句と組み合わせて使用されます。 HAVING 句の構文は次のとおりです。
SELECT column1, aggregate_function(column2), ...
FROM table_name
GROUP BY column1
HAVING condition;
上記の構文で、column1 と aggregate_function(column2) は SELECT ステートメントで使用される列と集計関数であり、condition は結果セットが満たす条件です。
たとえば、次のデータを含む sales という名前のテーブルがあるとします。
+----+--------+-------+
| id | date | sales |
+----+--------+-------+
| 1 | 2021-01-01 | 100 |
| 2 | 2021-01-02 | 150 |
| 3 | 2021-01-03 | 200 |
| 4 | 2021-02-01 | 175 |
| 5 | 2021-02-02 | 225 |
+----+--------+-------+
総売上が 200 を超える各月の総売上を検索する場合は、次の SQL ステートメントを使用できます。
SELECT DATE_FORMAT(date, '%Y-%m') AS month, SUM(sales) AS total_sales
FROM sales
GROUP BY month
HAVING SUM(sales) > 200;
結果セットは次のようになります。
+-------+-----------+
| month | total_sales |
+-------+-----------+
| 2021-02 | 400 |
+-------+-----------+
ご覧のとおり、売上合計が 200 を超える月のみが結果セットに返されます。
9. UNION 句
UNION 句は、2 つ以上の SELECT ステートメントの結果セットを 1 つの結果セットに結合するために使用されます。 UNION 句の構文は次のとおりです。
上記の構文で、column1、column2、... は選択される列であり、table_name1 と table_name2 はデータが選択されるテーブルの名前です。
たとえば、sales1 と sales2 という名前の 2 つのテーブルがあり、次のデータが含まれているとします。
Table: sales1
+----+--------+-------+
| id | date | sales |
+----+--------+-------+
| 1 | 2021-01-01 | 100 |
| 2 | 2021-01-02 | 150 |
+----+--------+-------+
Table: sales2
+----+--------+-------+
| id | date | sales |
+----+--------+-------+
| 3 | 2021-01-03 | 200 |
| 4 | 2021-02-01 | 175 |
+----+--------+-------+
両方のテーブルのデータを 1 つの結果セットに結合する場合は、次の SQL ステートメントを使用できます。
SELECT date, sales
FROM sales1
UNION
SELECT date, sales
FROM sales2;
結果セットは次のようになります。
+--------+-------+
| date | sales |
+--------+-------+
| 2021-01-01 | 100 |
| 2021-01-02 | 150 |
| 2021-01-03 | 200 |
| 2021-02-01 | 175 |
| 2021-02-02 | 225 |
+--------+-------+
結果セットからわかるように、UNION 句は両方のテーブルのデータを 1 つの結果セットに結合し、重複行を排除しています。
結論
SQL は、データベースからデータを操作および取得するための強力な言語です。 SELECT ステートメントは最も一般的に使用される SQL ステートメントであり、このチート シートで説明されている構文と句は、SQL クエリの作成を開始するのに役立ちます。 初心者でも経験豊富な SQL ユーザーでも、このチート シートは、最も一般的に使用される SQL 構文の優れたリファレンスです。