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

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);

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
下面是使用docker-compose实现PostgreSQL12 Active-Active复制的详细步骤: 1. 首先,您需要在您的计算机上安装Docker和Docker Compose。如果您已经安装了这些工具,请跳过此步骤。 2. 创建docker-compose.yml文件并在其中定义两个PostgreSQL容器。以下是一个示例文件: ``` version: '3' services: db1: image: postgres:12 restart: always volumes: - db1-data:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=password - POSTGRES_USER=user - POSTGRES_DB=db - PGDATA=/var/lib/postgresql/data/pgdata - PGPORT=5432 - PGHOST=db1 db2: image: postgres:12 restart: always volumes: - db2-data:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=password - POSTGRES_USER=user - POSTGRES_DB=db - PGDATA=/var/lib/postgresql/data/pgdata - PGPORT=5432 - PGHOST=db2 depends_on: - db1 volumes: db1-data: db2-data: ``` 3. 运行docker-compose命令以启动容器:`docker-compose up -d`。这将启动两个PostgreSQL容器,一个命名为db1,另一个命名为db2。 4. 在db1容器中创建复制用户并授予复制权限。在db1容器中,运行以下命令: ``` CREATE USER replicator REPLICATION LOGIN CONNECTION LIMIT 10 ENCRYPTED PASSWORD 'password'; GRANT REPLICATION SLAVE ON *.* TO replicator; ``` 5. 在db2容器中创建复制用户并授予复制权限。在db2容器中,运行以下命令: ``` CREATE USER replicator REPLICATION LOGIN CONNECTION LIMIT 10 ENCRYPTED PASSWORD 'password'; GRANT REPLICATION SLAVE ON *.* TO replicator; ``` 6. 在db1容器中创建复制槽。在db1容器中,运行以下命令: ``` SELECT * FROM pg_create_physical_replication_slot('replication_slot'); ``` 7. 备份db1容器中的数据并恢复到db2容器中。在db1容器中,运行以下命令: ``` pg_basebackup -h db1 -D /tmp/pgdata -U replicator -X stream -P ``` 然后,将备份文件传输到db2容器中并恢复它。在db2容器中,运行以下命令: ``` pg_basebackup -h db1 -D /tmp/pgdata -U replicator -X stream -P ``` 8. 在db2容器中创建复制槽。在db2容器中,运行以下命令: ``` SELECT * FROM pg_create_physical_replication_slot('replication_slot'); ``` 9. 在db2容器中运行以下命令以启动流复制: ``` pg_ctl -D /var/lib/postgresql/data/ start ``` 10. 在db1容器中运行以下命令以启动流复制: ``` pg_ctl -D /var/lib/postgresql/data/ start ``` 11. 测试复制是否正常工作。在db1容器中,运行以下命令: ``` CREATE TABLE test_table (id serial PRIMARY KEY, name VARCHAR (50) NOT NULL); INSERT INTO test_table (name) VALUES ('test'); ``` 然后,在db2容器中运行以下命令: ``` SELECT * FROM test_table; ``` 如果你看到了一条包含“test”的记录,那么复制已经正常工作了。 希望这些步骤能够帮助您实现PostgreSQL12 Active-Active复制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wuyuanshun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值