この記事では、 最も使う SQL である SELECT 文を解説します。 SELECT 文が使えるようになることで、 データベースを操作してデータを取得することができるようになります。
1 SELECT文の基本形
SELECT 文の基本について説明します。
書式/コード
最もシンプルな SELECT 文は、下記の書式になります。
SELECT
列名
FROM
テーブル名
SELECTはデータを取得するための SQL です。 SELECT の後に取得したいデータの列の名前、 FROM の後にテーブルの名前を指定します。
また SQL はこのような1行で書くこともできます。 複数行であっても1行であっても、 SQL の実行結果は全く同じです。 以降は分かりやすさを優先して、複数行にした形で SQLを紹介します。
ここで SQL の構造の呼び方について説明します。 SQL はデータベースとやり取りするためのコンピューター言語ですが、やり取りする際の一連のまとまりを文と呼びます。 SELECT の場合は SELECT文と呼びます。 またSELECTやFROMといったキーワードごとのまとまりは、句と呼ばれます 。
の図のように SELECT 文の中に SELECT 句やFROM句があるイメージになります。
今回は下記のテーブルを利用します。
purchase
purchase_date | name | quantity |
2021/5/18 | マスク | 20 |
2021/5/18 | 石けん | 2 |
2021/5/18 | アルコール液 | 2 |
2021/5/19 | 除菌スプレー | 10 |
2021/5/20 | 使い捨て手袋 | 10 |
2021/5/21 | ガーゼ | 2 |
2 SELECTとFROM
SELECT とFROM の説明をします。 最も基本的なSQLですが、最も使うキーワードですのでしっかり確認していきましょう。
テーブルにデータを追加する SQL の書式はこのようになります。
SELECT
列名
FROM
テーブル名
SELECT の後に取得したいデータの列名 FROM の後にテーブル名を指定します。
下記のSQLを実行してみます。
SELECT
*
FROM
purchase
- FROMの後にテーブル名、purchaseを指定します
- 別名では*(アスタリスク)が指定されています
- これにより全ての列名を指定する、ということになります
果は下記になります。
purchase_date | name | quantity |
2021/5/18 | マスク | 20 |
2021/5/18 | 石けん | 2 |
2021/5/18 | アルコール液 | 2 |
2021/5/19 | 除菌スプレー | 10 |
2021/5/20 | 使い捨て手袋 | 10 |
2021/5/21 | ガーゼ | 2 |
では別名を絞ってみましょう。
SELECT
name
FROM
purchase
- SELECT 句の中の*をnameに変えています
結果は下記になります。
name |
マスク |
石けん |
アルコール液 |
除菌スプレー |
使い捨て手袋 |
ガーゼ |
nameの列のみが表示される形になりました。
ポイント
ELECT句の中で別名を指定するとその列にのみになるということです。 全ての列名を指定する場合は*を使うことができます。
3 WHERE
WHEREの使い方を解説します。
WHEREを使うことで様々な条件を指定してデータを絞り込むことができます 。
書式/コード
WHERE の書式はこのようになります。
SELECT
列名
FROM
テーブル名
WHERE
条件式
WHERE の後に条件を指定します 。 条件は等号や不等号などを使った、式の形になります。
下記のSQLを実行してみます。
SELECT
列名
FROM
テーブル名
WHERE
quantity > 5
果は下記になります。
purchase_date | name | quantity |
2021/5/18 | マスク | 20 |
2021/5/19 | 除菌スプレー | 10 |
2021/5/20 | 使い捨て手袋 | 10 |
- WHEREの後にquantityつまり数量が5よりも大きいという条件になっています
- この条件でデータが絞り込まれることになります
ポイント
WHEREの中で条件式を指定することです。 条件に合うデータのみに、行が絞られたテーブルが得られるということになります。
4 ORDER BY
このレクチャーでは ORDER BY の使い方を解説します。 ORDER BY を使うことでデータの並べ替えをすることができます。
書式/コード
ORDER BY の書式はこのようになります。
SELECT
列名
FROM
テーブル名
ORDER BY
列名
ORDER BY 句の中で、並び替えを行いたい列を指定します。
下記のSQLを実行してみます。
SELECT
*
FROM
purchase
ORDER BY
quantity
結果は下記になります。
purchase_date | name | quantity |
2021/5/18 | 石けん | 2 |
2021/5/18 | アルコール液 | 2 |
2021/5/21 | ガーゼ | 2 |
2021/5/19 | 除菌スプレー | 10 |
2021/5/20 | 使い捨て手袋 | 10 |
2021/5/18 | マスク | 20 |
- ORDER BY 句の中で、列としてquantityを指定しています ですのでquantityの値の順番で並び替えが行われます
- デフォルトでは小さい順つまり昇順に並びます
大きい順つまり降順にならべるには、
SELECT
*
FROM
purchase
ORDER BY
quantity DESC
- DESCというキーワードを用います
5 LIMIT
LIMITの使い方を解説します。 LIMITを使うことで、結果として受け取るテーブルの行数を制限することができます。
書式/コード
LIMITの書式は下記になります。
SELECT
列名
FROM
テーブル名
LIMIT
数値
LIMIT句の中で、行数制限したい数値を指定します。
下記のSQLを実行してみます。
SELECT
*
FROM
purchase
LIMIT
3
結果は下記になります。
purchase_date | name | quantity |
2021/5/18 | マスク | 20 |
2021/5/18 | 石けん | 2 |
2021/5/18 | アルコール液 | 2 |
- LIMIT句の中で3という数字を指定しています
ここまで LIMIT 句を見てみましたが例えば ORDER BY 句のように他の句と組み合わせることができます。 ORDER BY 句と組み合わせると、例えば数量が大きい順のトップ3などを結果として取得することができます。 では SQL を書き直して ORDER BY を追加してみましょう。 quantityを指定して、大きい順なのでDESCキーワードを指定します。
SELECT
*
FROM
purchase
ORDER BY
quantity DESC
LIMIT
3
結果は下記になります。
purchase_date | name | quantity |
2021/5/18 | マスク | 20 |
2021/5/19 | 除菌スプレー | 10 |
2021/5/20 | 使い捨て手袋 | 10 |
- quantityの値の大きい順番で並び替えられて、かつ3行に絞られます
ポイント
SQL のキーワードを組み合わせるて使うという点です。 SQL ではあらゆるキーワードを組み合わせて使うことができますので、必要に応じて組み合わせて使いまし。ょう