暂无图片
pg怎么把数据表导出成Excel?
我来答
分享
QIU飞
2021-09-18
pg怎么把数据表导出成Excel?

pg怎么把数据表导出成Excel?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
Lucifer三思而后行
暂无图片
2021-09-18

可以使用 copy!

copy命令同\copy命令语法上相同,区别在于copy必须使用能够超级用户使用,copy … to file 中的文件都是数据库服务器所在的服务器上的文件,而\copy 一般用户即可执行且\copy 保存或者读取的文件是在客户端所在的服务器。本文主要以copy命令作为介绍重点,使用copy命令将表内数据倒为csv格式文件即为excel格式。

1、copy命令语法

COPY { 表名 [ ( 列名称 [, ...] ) ] | ( 查询 ) } TO { '文件名' | PROGRAM '命令' | STDOUT } [ [ WITH ] ( 选项 [, ...] ) ] 选项可以是下列内容之一 FORMAT 格式_名称 FREEZE [ 布尔 ] DELIMITER '分隔字符' NULL '空字符串' HEADER [ 布尔 ] QUOTE '引用字符' ESCAPE '转义字符' FORCE_QUOTE { ( 列名称 [, ...] ) | * } FORCE_NOT_NULL ( 列名称 [, ...] ) FORCE_NULL ( 列名称 [, ...] ) ENCODING 'encoding_name(编码名)'
复制

①查看现有表数据

test=# select * from test; user_id | user_name | age | gender | remark ---------+---------------+-----+--------+---------------------------------------------- 1 | Jackie Chan | 45 | male | "police story","project A","rush hour" 3 | Brigitte Li | 46 | female | 4 | Maggie Cheung | 39 | female | 5 | Jet Li | 41 | male | "Fist of Legend","Once Upon a Time in China" 2 | Gong Li | 38 | female | "Farewell My Concubine","Lifetimes Living" (5 行记录)
复制

②带列名导出,默认情况下使用,作为分隔符

test=# copy test to '/tmp/test1.csv' with csv header; COPY 5 test=# \! cat /tmp/test1.csv user_id,user_name,age,gender,remark 1,Jackie Chan,45,male,"""police story"",""project A"",""rush hour""" 3,Brigitte Li,46,female, 4,Maggie Cheung,39,female, 5,Jet Li,41,male,"""Fist of Legend"",""Once Upon a Time in China""" 2,Gong Li,38,female,"""Farewell My Concubine"",""Lifetimes Living"
复制

③带列名导出,指定使用|作为分隔符

test=# copy test to '/tmp/test1.csv' with csv header DELIMITER '|'; COPY 5 test=# \! cat /tmp/test1.csv user_id|user_name|age|gender|remark 1|Jackie Chan|45|male|"""police story"",""project A"",""rush hour""" 3|Brigitte Li|46|female| 4|Maggie Cheung|39|female| 5|Jet Li|41|male|"""Fist of Legend"",""Once Upon a Time in China""" 2|Gong Li|38|female|"""Farewell My Concubine"",""Lifetimes Living"
复制

④带列名导出,将空字符替换为指定值导出

test=# copy test to '/tmp/test1.csv' with csv header null 'to be supplemented'; COPY 5 test=# \! cat /tmp/test1.csv user_id,user_name,age,gender,remark 1,Jackie Chan,45,male,"""police story"",""project A"",""rush hour""" 3,Brigitte Li,46,female,to be supplemented 4,Maggie Cheung,39,female,to be supplemented 5,Jet Li,41,male,"""Fist of Legend"",""Once Upon a Time in China""" 2,Gong Li,38,female,"""Farewell My Concubine"",""Lifetimes Living"
复制

可参考:https://blog.csdn.net/pg_hgdb/article/details/114289394

暂无图片 评论
暂无图片 有用 0
打赏 0
cqiwen
2021-09-18

COPY test TO ‘/home/postgres/test_copy.csv’ WITH CSV header;
–将test表导出到/home/postgres/test_copy.csv

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
函数定义了变量,select调用不用加$吗?
回答 1
不用加
postgresql:有没有一种方案可以让库里面的表结构从某个公共库进行继承呢?
回答 1
写个表结构同步工具
postgresql 有oracle查看状态的SQL吗?
回答 2
查看视图pgstatactivity
编译安装问题
回答 1
1.确认 uuidossp 模块已安装首先,确保在编译安装PostgreSQL时,uuidossp模块也被编译了。默认情况下,大多数模块应该已经被包含在内,但是有时可能需要手动确认
postgresql哪个版本的分区性能比较好?
回答 1
已采纳
肯定是最新版本性能更好,以下是postgresql各版本分区新特性,可供参考:pg10:引入声名式分区pg11:对分区表进行了重大的改进,例如增加了哈希分区、支持创建主键、外键、索引、支持UPDATE
pg如何关闭自动统计信息的收集??
回答 1
自动收集统计信息是依赖AUTOVACUUM定时触发analyze,postgresql.conf中是否配置autovacuum该参数为on,可根据selectname,settingfrompgset
postgresql 数据库里面存储了路径,需要使用分割符分开,使用了string_to_arry,但是不知道如何提取,直接使用string_to_arry()[1],提示有问题?
回答 1
已采纳
还要再加一层括号select(stringtoarray('a\asd\vbfgh\efgr','\'))[2]
原来默认安装的是能找到的,rm -rf /数据文件/*,再执行pg_basebackup之后就,找不到了,为什么执行了pg_basebackup之后,备份库就找不到配置了?
回答 2
先确定是否备份成功,如果备份成功的话,查看一下具体的备份路径是否正确?
postgresql 9.4的版本,低不低?
回答 1
已采纳
官方最新14了,您说呢。就算不用14,正式环境至少13吧。难道将来打算升级吗?或者就是这个版本一直用下去?
Postgresql 的哈希索引严格弱于b+树索引吗?
回答 1
请问索引严格是什么?没听说过索引有严格和不严格的讲法。