前言

记录日常工作中一些关于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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐