カテゴリ: PostgreSQL 更新日: 2026/03/03

PostgreSQLのLIMITとOFFSETを完全解説|初心者でもわかる件数指定とページ分割の基本

PostgreSQLのLIMIT/OFFSETの使い方
PostgreSQLのLIMIT/OFFSETの使い方

先生と生徒の会話形式で理解しよう

生徒

「PostgreSQLでデータを表示すると、たくさん出てきて見づらいです。必要な分だけ表示する方法はありますか?」

先生

「ありますよ。それがLIMITとOFFSETです。本のページをめくるように、表示する件数や位置を決められます。」

生徒

「パソコンをほとんど触ったことがなくても理解できますか?」

先生

「大丈夫です。名簿を何人分ずつ見るか、どこから見るか、という感覚で説明します。」

1. SQLとは何か?

1. SQLとは何か?
1. SQLとは何か?

SQLは、PostgreSQLなどのデータベースに保存されている情報を操作するための言葉です。データベースは、大量の情報を表の形で整理して保存する箱のようなものです。

SQLを使うことで、その表の中からデータを取り出したり、新しく追加したり、内容を変更したりできます。LIMITとOFFSETは、取り出すときの「量」と「位置」を決めるために使います。

2. LIMITとOFFSETの役割をイメージで理解しよう

2. LIMITとOFFSETの役割をイメージで理解しよう
2. LIMITとOFFSETの役割をイメージで理解しよう

LIMITは「何件まで表示するか」を決める命令です。OFFSETは「何件目から表示を始めるか」を決める命令です。

例えば、名簿に100人分の名前があるとします。その中から最初の10人だけ見たい場合はLIMITを使います。11人目から20人目を見たい場合は、OFFSETとLIMITを組み合わせます。

3. サンプルテーブルを確認しよう

3. サンプルテーブルを確認しよう
3. サンプルテーブルを確認しよう

ここではusersテーブルを使って説明します。SQLを実行する前の状態は次の通りです。


id | name       | age | email
---+------------+-----+----------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 高橋次郎   | 18  | jiro@example.com
5  | 伊藤美咲   | 22  | misaki@example.com
6  | 中村健     | 28  | ken@example.com
7  | 小林愛     | 21  | ai@example.com

このようにデータが多くなると、すべてを一度に表示するのは大変になります。

4. LIMITで表示件数を制限する方法

4. LIMITで表示件数を制限する方法
4. LIMITで表示件数を制限する方法

LIMITを使うと、表示する行数を制限できます。例えば、最初の3件だけ表示したい場合は次のように書きます。


SELECT *
FROM users
LIMIT 3;

実行結果は次のようになります。


id | name       | age | email
---+------------+-----+----------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com

LIMITは「ここまでで止めて」という合図だと考えると分かりやすいです。

5. OFFSETで表示開始位置をずらす方法

5. OFFSETで表示開始位置をずらす方法
5. OFFSETで表示開始位置をずらす方法

OFFSETは、最初の何件を飛ばすかを指定します。例えば、最初の3件を飛ばして、その後のデータを見たい場合は次のように書きます。


SELECT *
FROM users
OFFSET 3;

OFFSETだけを書くと、4件目以降のすべてが表示されます。

6. LIMITとOFFSETを組み合わせて使う

6. LIMITとOFFSETを組み合わせて使う
6. LIMITとOFFSETを組み合わせて使う

LIMITとOFFSETは一緒に使うことが多いです。例えば、「4件目から3件分だけ表示したい」場合は次のようになります。


SELECT *
FROM users
LIMIT 3 OFFSET 3;

実行結果は次の通りです。


id | name       | age | email
---+------------+-----+----------------------
4  | 高橋次郎   | 18  | jiro@example.com
5  | 伊藤美咲   | 22  | misaki@example.com
6  | 中村健     | 28  | ken@example.com

これは、ページ分割表示によく使われる書き方です。

7. ORDER BYと一緒に使う重要性

7. ORDER BYと一緒に使う重要性
7. ORDER BYと一緒に使う重要性

LIMITとOFFSETを使うときは、ORDER BYと一緒に使うことがとても大切です。並び順を決めないと、毎回表示される内容が変わることがあります。


SELECT *
FROM users
ORDER BY age
LIMIT 3 OFFSET 2;

年齢順に並べたうえで、指定した範囲だけを表示することで、安定した結果が得られます。

8. LIMITとOFFSETを使うときの注意点

8. LIMITとOFFSETを使うときの注意点
8. LIMITとOFFSETを使うときの注意点

LIMITとOFFSETは便利ですが、データが非常に多い場合、OFFSETの数値が大きくなると処理に時間がかかることがあります。

また、LIMITとOFFSETは表示方法を変えるだけで、データそのものを削除したり変更したりするものではありません。安心して使って大丈夫です。

カテゴリの一覧へ
新着記事
New1
PostgreSQL
PostgreSQLのLIMIT・OFFSETとパフォーマンス問題を完全解説|初心者でもわかる安全な使い方
New2
MySQL
MySQLのUPDATE文でデータを更新する基本を徹底解説|SQL初心者でもわかるデータベース更新入門
New3
PostgreSQL
PostgreSQLのOFFSET完全入門|並び替えと組み合わせてデータをスキップする方法を初心者向けに解説
New4
MySQL
MySQLで複数行INSERTを行う方法と注意点を徹底解説|SQL基礎から学ぶデータベース入門
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQLのDISTINCT完全ガイド|SQLで重複データを除外する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
PostgreSQL
PostgreSQLの主キー・外部キーを完全解説!初心者でもわかる設定方法と考え方
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLのLEFT JOIN完全入門!不足データを補いながらテーブル結合する仕組みをやさしく解説
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLのpublicスキーマの役割と扱い方
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLの権限管理を完全解説|スキーマ単位で理解するデータベースセキュリティの基礎