pg数据库备份和恢复命令
前言
记录日常工作中一些关于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
。