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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值