1. ホーム
  2. コース一覧
  3. データベース基礎コース
  4. ORDER BYとLIMITで条件変えてデータを取得しよう

データベース基礎コース6/13

ORDER BYとLIMITで条件変えてデータを取得しよう

こちらではMySQLを通じたデータベースの使い方について、SELECT文を使用する際の様々なレコード取得方法について解説します。

今回は、ORDER BYLIMITを使用したレコードの取得方法について学んで参ります。

こちらの学習を通じて、データベースの使い方について理解を深めていきましょう。

ORDER BYとは

SELECT文を使用してレコードを取得する際に、ある値を基に並び替えてデータを表示させたい場合にはORDER BYを使用します。

ORDER BYの後ろに並び替えの基準とするカラム名を指定し、最後に並び替えの順序を昇順(ASC)または降順(DESC)で指定します。

SELECT カラム名 FROM テーブル名 ORDER BY 基準にしたいカラム名 [ASC または DESC];

ここに、仮想レストランにおける飲料売上を記録したbeverageテーブルがあります。

idnamecountpriceamount
1生ビール5080040000
4グラスワイン4085034000
3ハイボール9070063000
2レモンサワー7070049000
5ウヰスキー3090027000

例えばidを基準に昇順で並び替えたデータを取得したい場合は、下記のようにSQL文を記述します。

SELECT * FROM beverage ORDER BY id ASC;

#実行結果
+----+-------------+-------+-------+--------+
| id |        name | count | price | amount |
+----+-------------+-------+-------+--------+
|  1 |       生ビール |    50 |   800 |  40000 |
|  2 |  生レモンサワー |    70 |   750 |  52500 |
|  3 |     ハイボール |    90 |   700 |  63000 |
|  4 |    グラスワイン |    40 |   900 |  36000 |
|  5 |     ウヰスキー |    30 |   900 |  27000 |
+----+-------------+-------+-------+--------+

ASC(またはDESC)を記述せずにORDER BYを使用した場合は、デフォルト設定により昇順でソートされます。

SELECT * FROM beverage ORDER BY count;

#実行結果(昇順で表示される)
+----+-------------+-------+-------+--------+
| id |        name | count | price | amount |
+----+-------------+-------+-------+--------+
|  5 |     ウヰスキー |    30 |   900 |  27000 |
|  4 |    グラスワイン |    40 |   900 |  36000 |
|  1 |       生ビール |    50 |   800 |  40000 |
|  2 |  生レモンサワー |    70 |   750 |  52500 |
|  3 |     ハイボール |    90 |   700 |  63000 |
+----+-------------+-------+-------+--------+

また、比較演算子による条件付けを組み合わせてのレコードの取得も可能です。比較演算子は下記表をご参照下さい。

比較演算子使用用途
=~と等しい
<~より小さい
>~より大きい
<=~以下
>=~以上
<> または !=~と等しくない

それでは比較演算子を使用して、売上金額50,000円以下のレコードを取得するSQL文を記述してみましょう。

SELECT * FROM beverage WHERE amount <= 50000 ORDER BY amount DESC;

#実行結果
+----+-------------+-------+-------+--------+
| id |        name | count | price | amount |
+----+-------------+-------+-------+--------+
|  1 |       生ビール |    50 |   800 |  40000 |
|  4 |    グラスワイン |    40 |   900 |  36000 |
|  5 |     ウヰスキー |    30 |   900 |  27000 |
+----+-------------+-------+-------+--------+

LIMITとは

SELECT文を使用してレコードを取得する際に、特定の行数分のみレコードを取得したい場合があります。この場合はLIMITを使用することで、指定した行数分のレコードを取得することができます。

SELECT カラム名 FROM テーブル名 LIMIT 取得したい行数;

ここでもう一度、beverageテーブルを使用します。

idnamecountpriceamount
1生ビール5080040000
4グラスワイン4085034000
3ハイボール9070063000
2レモンサワー7070049000
5ウヰスキー3090027000

このテーブルから「売上金額の高い順」に3行分のレコード取得する場合には、下記の様にSQL文を記述します。

SELECT * FROM beverage ORDER BY amount DESC LIMIT 3;

#実行結果
+----+-------------+-------+-------+--------+
| id |        name | count | price | amount |
+----+-------------+-------+-------+--------+
|  3 |     ハイボール |    90 |   700 |  63000 |
|  2 |  生レモンサワー |    70 |   750 |  52500 |
|  1 |       生ビール |    50 |   800 |  40000 |
+----+-------------+-------+-------+--------+

まとめ

今回はSELECT文におけるORDER BYLIMITを使用した条件付きのレコード抽出方法について学習しました。

ここで紹介されたもの以外にも、条件を付けてのレコード取得方法が存在します。

気になった方はぜひ調べてみて下さい。実際に触れてみたい方は、環境を起動しましょう。

問題を解くためには、十分な画面サイズのPC環境をご利用下さい。