postgresql分页查询-sql详细操作步骤

本文详细介绍了在PostgreSQL数据库中使用LIMIT与OFFSET子句进行高效分页查询的方法,包括基本的LIMIT查询和结合OFFSET实现的多页数据查询。通过实际的SQL语句示例,展示了如何设置每页显示的记录数和从哪一条记录开始查询,帮助读者掌握PostgreSQL分页查询的核心技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

postgresql之分页limit查询sql

PostgreSQL 中的 limit 子句用于限制 SELECT 语句中查询的数据的数量。

1.LIMIT 子句的 SELECT 语句

1)sql格式

SELECT * FROM "TB01" LIMIT [no of rows]

2)sql测试

表内容:
在这里插入图片描述
执行sql:

select * from  class_name LIMIT 3;

运行结果:
在这里插入图片描述

2. LIMIT 子句与 OFFSET 子句一起使用

1)sql格式

SELECT * FROM table_name
LIMIT [pageSize] OFFSET [pageNum]
-- pageSize:每页显示条数
-- pageNum:从第几条开始查询 

2)sql测试

表内容:
同上

执行sql(sql中注释解释了分页逻辑):

--SELECT * FROM table_name LIMIT [pageSize] OFFSET [pageNum]
-- pageSize:每页显示条数
-- pageNum:从第几条开始查询
--   - pageNum= (pageSize-1)*页数

--第一页 pageSize:3   pageNum:(1-1)*3=0
select * from  class_name LIMIT 3 OFFSET 0;
--第二页 pageSize:3   pageNum:(2-1)*3=3
select * from  class_name LIMIT 3 OFFSET 3;
--第三页 pageSize:3   pageNum:(3-1)*3=6
select * from  class_name LIMIT 3 OFFSET 6;
-- 。。。。。。。。。。。。。。。。。。。。。。。。。

运行结果:
结果1
在这里插入图片描述
结果2
在这里插入图片描述
结果3
在这里插入图片描述

如需要表结构和测试数据,直接复制下面的数据即可。

表结构

CREATE TABLE "public"."class_name" (
  "id" int4 NOT NULL DEFAULT nextval('id'::regclass),
  "class_no" varchar(50) COLLATE "pg_catalog"."default",
  "name" varchar(255) COLLATE "pg_catalog"."default",
  "age" int4,
  CONSTRAINT "class_name_pkey" PRIMARY KEY ("id")
)
;

ALTER TABLE "public"."class_name" 
  OWNER TO "postgres";

数据:

INSERT INTO "public"."class_name"("id", "class_no", "name", "age") VALUES (1, '1', '二哈', 2);
INSERT INTO "public"."class_name"("id", "class_no", "name", "age") VALUES (2, '1', '金毛', 3);
INSERT INTO "public"."class_name"("id", "class_no", "name", "age") VALUES (3, '1', '拉布', 4);
INSERT INTO "public"."class_name"("id", "class_no", "name", "age") VALUES (4, '2', '折耳', 5);
INSERT INTO "public"."class_name"("id", "class_no", "name", "age") VALUES (5, '2', '波斯', 5);
INSERT INTO "public"."class_name"("id", "class_no", "name", "age") VALUES (6, '3', '杰克', 6);
INSERT INTO "public"."class_name"("id", "class_no", "name", "age") VALUES (7, '3', '肉丝', 33);
INSERT INTO "public"."class_name"("id", "class_no", "name", "age") VALUES (8, '3', '杰克', 7);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuyuanshun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值