【SQL入門編6】LIMITを使ってデータ数を制限しよう

SQL入門

本記事では、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などの集計関数の使い方を解説していきます。

挫折率が高い??プログラミング学習のポイント
駆け出しエンジニアが一緒に学ぶ
CANITは、Progateやドットインストールで独学している人達同士をつなげます。駆け出しエンジニアのあなたのためのSNSです。
SQL入門
【この記事を書いた人】
谷津弘樹

某自社開発のIT企業に勤めていた元webプログラマーです。主にサーバーサイド側を担当し、phpを使った開発経験があります。現在は退職しフリーランスライターとして活動中。IT系の記事を主に執筆し生計を立てています。

CANIT
タイトルとURLをコピーしました