Skip to content

SQL チート シート - 初心者向けの 9 つの重要な SQL 構文

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 構文の優れたリファレンスです。

📚