4
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?

More than 5 years have passed since last update.

SQL基本構文まとめ

Last updated at Posted at 2019-07-29

はじめに

SQLについて学習している入社1年目のSEです。『SQL書き方ドリル』のテーブルデータをMariaDBに移してクエリの練習をしています。アウトプットのために学んだクエリを書いていきます。今回はSELECT文の中でも超超基本的な内容です。
間違っていたら優しくご指摘をいただければと思います。

#SELECT
SQLで一番最初に使ったクエリ。初めて見たときは、SELECTよりもカラムって何だ!?となりました。column(行)とrow(列)のことだったんですね。いろいろ恥ずかしい…。
データが入っているテーブルを指定して、指定したカラムを表示することができます。

SELECT カラム名 FROM テーブル名;

#WHERE
WHERE句を使うとSELECTする対象を絞り込むことができます。

SELECT カラム名 FROM テーブル名 WHERE 条件式;

--文字列を指定したいとき(完全一致)
SELECT カラム名 FROM テーブル名 WHERE 対象 LIKE '文字列';

--文字列を指定したいとき(部分一致)
SELECT カラム名 FROM テーブル名 WHERE 対象 LIKE '%文字列%';

#GROUP BY
GROUP BY句を使うことによって、特定のカラムで行をグループ分けできる。

SELECT カラム名 FROM テーブル名 GROUP BY まとめたいカラム名;

以下の文では、StudentClassでグループ化して、SCHOOLテーブルから、クラスごとに生徒の数をカウントしています。

SELECT StudentClass AS クラス, COUNT(*) AS 生徒数  FROM SCHOOL GROUP BY StudentClass;

結果として、下の表が得られました。

+-----------+-----------+
| クラス    | 生徒数    |
+-----------+-----------+
| A         |         2 |
| B         |         3 |
| C         |         1 |
+-----------+-----------+

このように、GROUP BY句は集合関数(AVG、SUM、COUNTなど)と一緒に使ってグループ化⇒集計までやることができます。

#HAVING句
つい最近まで、WHERE句とHAVING句の区別がついていませんでした…。恥ずかしい…。
WHERE句の対象はカラムに入っている値ですが、HAVING句の対象は集合関数の計算結果です。
WHERE句ではカラムの値ごとに、条件に当てはまっているか真偽を判定しますが、HAVING句では、集合関数の計算結果をフィルタにかけることができます。
たとえば、先ほどのSCHOOLテーブルで、生徒の数が2人以上のクラスを調べたいときに使います。

例えば、先ほどのSCHOOLテーブルで、HAVING句を使うことによって生徒数が2人以上のクラスを調べることができます。

SELECT StudentClass AS クラス, COUNT(*) AS 生徒数 FROM SCHOOL GROUP BY StudentClass HAVING COUNT(*) >= 2;

マンツーマンレッスンのCクラスが除外されて表が出力されます。

+-----------+-----------+
| クラス    | 生徒数    |
+-----------+-----------+
| A         |         2 |
| B         |         3 |
+-----------+-----------+

#おわりに
初めての記事で、超初歩的なうえに短いですが、Qiitaの記事を書くのはとても大変ですね…。記事を書かれている先輩方を心の底からリスペクトします。SQLに関してはまだまだ入り口にも立ってないくらいですが、とても奥が深く、面白いので知識を深めて使えるようになりたいと思います。

4
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
4
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?