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

PostgreSQLのOFFSET完全入門|並び替えと組み合わせてデータをスキップする方法を初心者向けに解説

PostgreSQLのOFFSETでスキップを設定する方法
PostgreSQLのOFFSETでスキップを設定する方法

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

生徒

「PostgreSQLでデータを表示していたら、最初の何件かを飛ばして表示したい場面がありました。そんなことはできるんですか?」

先生

「できますよ。OFFSETという仕組みを使うと、最初のデータをスキップして表示できます」

生徒

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

先生

「大丈夫です。本のページをめくる感覚で説明します」

1. SQLとは何か?

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

SQLは、データベースに保存されている情報を操作するための言葉です。データベースは、たくさんの情報を表の形で整理して保存する場所です。SQLを使うことで、その表から必要な情報を取り出したり、順番を変えて表示したりできます。

紙の名簿を思い浮かべてください。名前順に並び替えたり、途中のページだけを見ることがあります。SQLは、それをコンピューターにお願いするための命令文です。

2. OFFSETとは何かをやさしく理解しよう

2. OFFSETとは何かをやさしく理解しよう
2. OFFSETとは何かをやさしく理解しよう

OFFSETは、「最初の何件を飛ばすか」を指定するための命令です。スキップという言葉がぴったり当てはまります。

例えば、本の名簿で最初の3人を読み飛ばして、4人目から読み始めるようなイメージです。この「読み飛ばす人数」を指定するのがOFFSETです。

PostgreSQLでは、OFFSETは単独で使うよりも、LIMITやORDER BYと一緒に使われることが多いです。

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

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

ここではusersテーブルを使って、OFFSETの動きを確認します。まずはSQL実行前のテーブルを見てみましょう。


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

この表には6件のデータがあります。この中からOFFSETを使って表示範囲を調整していきます。

4. OFFSETだけを使ってデータをスキップする

4. OFFSETだけを使ってデータをスキップする
4. OFFSETだけを使ってデータをスキップする

まずはOFFSETだけを使ったシンプルな例です。次のSQLは、最初の2件を飛ばして表示します。


SELECT *
FROM users
OFFSET 2;

これは「最初の2行は無視して、3行目以降を表示してください」という意味になります。

実行結果


id | name       | age | email
---+------------+-----+-------------------
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 高橋次郎   | 22  | jiro@example.com
5  | 伊藤美咲   | 28  | misaki@example.com
6  | 田中健太   | 35  | kenta@example.com

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

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

OFFSETはLIMITと一緒に使うことで、より実用的になります。LIMITは「何件表示するか」を指定する命令です。

例えば「3件目から2件分だけ表示したい」という場合、次のように書きます。


SELECT *
FROM users
LIMIT 2
OFFSET 2;

これは、最初の2件を飛ばし、その後の2件だけを表示するという意味です。ページ分割のような仕組みでよく使われます。

6. ORDER BYとOFFSETを一緒に使う理由

6. ORDER BYとOFFSETを一緒に使う理由
6. ORDER BYとOFFSETを一緒に使う理由

OFFSETを使うときは、ORDER BYと一緒に使うのが基本です。並び順を決めないと、毎回表示される順番が変わる可能性があるからです。


SELECT *
FROM users
ORDER BY age ASC
LIMIT 3
OFFSET 1;

これは、年齢が若い順に並べたあと、最初の1件を飛ばして3件表示します。名簿を年齢順に並べて、2番目から見る感覚です。

7. OFFSETがよく使われる場面

7. OFFSETがよく使われる場面
7. OFFSETがよく使われる場面

OFFSETは、一覧画面やページ送りの仕組みでよく使われます。例えば、1ページに10件ずつ表示し、次のページでは最初の10件を飛ばして表示する、といった使い方です。

検索結果が多いときに、一度に全部表示しないためにも役立ちます。初心者のうちは「途中から見るための命令」と覚えておくと分かりやすいです。

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

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

OFFSETは便利ですが、データが非常に多い場合は処理が重くなることがあります。これは、内部的には最初のデータも数えた上で飛ばしているためです。

ただし、基本的な学習や小規模なデータでは気にする必要はありません。まずは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のLEFT JOIN完全入門!不足データを補いながらテーブル結合する仕組みをやさしく解説
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLのpublicスキーマの役割と扱い方
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLスキーマ作成・削除完全ガイド!初心者でもわかるデータベース設計の基礎