postgresql数据库备份命令


前言

记录日常工作中一些关于pg数据的操作,操作环境windows系统。


一、数据库备份命令

切换到数据库安装的bin目录下,cmd打开命令提示界面,输入如下命令
1、备份整个数据库,包括结构和数据

pg_dump -h localhost -p 5432 -U postgres -d data> D:\data.bak

2、只备份数据库某个表的结构

pg_dump -h localhost -p 5432 -U postgres -d data -t sys_user -s> D:\sysuser.bak

3、还原数据库,首先创建一个新的数据库(数据库名可以不一样)

psql -h localhost -p 5432 -U postgres -d ship<  C:\ship.bak

4、sql语句结果导出csv文件

 COPY (select * from test where time between '2022-04-07 06:00:00' and '2022-04-07 18:00:00' ) to 'D:/test-04-07.csv' with csv header;

copy函数里面 的select语句和正常查询语句一样,可以加任意条件
with csv header:表示将字段名称作为表头

5、命令执行sql文件

 psql -h 127.0.0.1 -U postgres -d test -p 5432 -a -f  脚本路径.sql

二、数据库sql语句操作

1.序列

自增序列:

create SEQUENCE test_id_seq start 1;

test_id_seq :序列名,自己随意取

使用自增序列,设计表的时候使用

nextval('test_id_seq '::regclass)

例:
在这里插入图片描述
序列值初始化:

alter sequence test_id_seq restart with 1

2.case when的使用

(示例):

       SELECT (CASE WHEN type='t' THEN 1 ELSE 0 END) AS manual,(CASE WHEN other='f' THEN 1 ELSE 0 END) AS automatic FROM testWHERE shift=(SELECT shift FROM test ORDER BY ID DESC LIMIT 1)

表示当type字段的数据库值是‘t’时,查出结果为1,否则为0
表示当other字段的数据库值是‘f’时,查出结果为1,否则为0

2.offset的使用

在某些情况下,可能需要从一个特定的偏移开始提取记录:
例:从第三位开始提取 3 个记录

SELECT * FROM test LIMIT 3 OFFSET 2

总结

主要想记录一些不常用的东西,要了解其他关于pgsql数据的函数和sql操作可移步:https://www.runoob.com/postgresql/postgresql-tutorial.html

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

佛系小李哥

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值