本記事では、LIMITの使い方を解説します。
前回はORDER BYでの並び替え方法について解説しました
今回では、LIMITを使ってのデータ数制限方法についてみていきましょう。
LIMITでのデータ数制限、ができるようになると、必要な数のデータから抽出して利用することができるようになります。
SQLのLIMITとは?
LIMITとは、SQLにおいて抽出するデータ数を絞り込むもののことです。
LIMITを使うことで、データの表示件数の設定ができるようになります。
たとえば、10件あるデータの最初の3件のみを表示することが可能です。
このように、データ数を絞り込んで表示させる際に必要なのが、LIMITですね。
SQLのLIMITの使い方
LIMITの具体的な使い方についてみていきましょう。
次の項目に従って解説していきます。
- LIMITでデータ件数を絞り込む
- WHEREで抽出したデータの件数を絞り込む
- LIKE演算子で抽出したデータの件数を絞り込む
- ORDER BYで並び替えた後にデータの件数を絞り込む
なお、今回は第1回目の記事で作成したテーブルを使って解説します。第1回目の記事で演習用のテーブルを作っていない方は、【SQL入門編1】初心者必見!SQLのクエリの書き方を学ぼうを読んで予め作成してくださいね。
LIMITでデータ件数を絞り込む
LIMITで実際にデータ件数を絞り込む方法をみていきましょう。
○コード例
SELECT name FROM TEST.Student LIMIT 5;
○実行結果
上記のコードは後ろに「LIMIT 5」とつけていますね。
LIMITの使い方は単純で「LIMIT {数値}」と記述することで、データ件数をその数にすることが可能です。
今回は「5」ですので、実行結果をみて分かる通り、5件しか表示がされません。
これがLIMITの基本的な使い方です。
○コード例
SELECT name FROM TEST.Student LIMIT 8;
○実行結果
上記のでは「LIMIT 8」としているので、データ件数が8件となっています。
WHEREで抽出したデータの件数を絞り込む
WHEREとLIMITを組み合わせることで、WHEREでデータを抽出した後に、表示制限をかけることが可能です。
○コード例
SELECT name FROM TEST.Student WHERE age = 12 LIMIT 1;
○実行結果
上記のコードでは、WHERE句によって年齢が12歳の場合のみ表示しています。
しかし、「LIMIT 1」となっているので、WHEREで抽出したうちの、最初の1件しか表示されませんね。
このようにWHEREとLIMITを組み合わせることも可能です。
なお、LIMITで指定する数値に関してですが、元々のデータ件数より多い数値を指定すると、元々のデータ件数しか表示されません。
○コード例
SELECT name FROM TEST.Student WHERE age = 12 LIMIT 3;
○実行結果
上記のコードは「LIMIT 3」と記述していますが、12歳以上のデータは元々2件しかないため、LIMITを使っても意味がなく2件がそのまま表示されています。
LIKE演算子で抽出したデータの件数を絞り込む
続いて、LIKE演算子で抽出したデータの件数をLIMITで絞り込んでみましょう。
○コード例
SELECT name FROM TEST.Student WHERE birthday LIKE "2000-%"LIMIT 1;
○実行結果
やり方は先程とほとんど一緒です。
LIKE演算子を使ってbirthdayが「2000-」から始まるものを抽出しています。
そのうちの最初の1件のみを抽出しているという訳ですね。
このようにLIKE演算子とLIMITも組み合わせることが可能です。
ORDER BYで並び替えた後にデータの件数を絞り込む
最後にORDER BYで並び替えた後に、データの件数を絞り込む方法をみていきましょう。
○コード例
SELECT name FROM TEST.Student ORDER BY age ASC LIMIT 1;
○実行結果
上記のコードは ORDER BYによって年齢順(昇順)に並び替えています。
そして、並び替えた後にLIMITによって、一番上のデータのみを表示しているのです。
つまり、ORDER BYとLIMITを組み合わせることで、一番年齢が低いものを抽出しています。
補足:検索結果から重複するものを除外する方法
LIMITの話題からは少し逸れますが、検索結果が重複するものを除外する方法についても、覚えておきましょう。
たとえば、以下のように、SQLを使った結果、検索結果が重複しているときがあると思います。
○コード例
SELECT age FROM TEST.Student ORDER BY age ASC;
○実行結果
この場合は「DISTINCT」という関数を使うことで、重複を除外することが可能です。
○コード例
SELECT DISTINCT(age) FROM TEST.Student ORDER BY age ASC;
○実行結果
これで、データベースに含まれているageのデータを重複せずに取得できましたね。
まとめ
本記事では、LIMITの使い方について解説しました。
LIMITでのデータ数制限方法がお分かり頂けたかと思います。
LIMITは業務でも多く使われるので、使い方を覚えておきましょう。
特にORDER BYで並び替えた後にLIMITを使うのはありがちです。
次回は、SUMなどの集計関数の使い方を解説していきます。