Windows_Postgresql相关操作内容

来源:互联网 发布:网络犯罪破案率 编辑:程序博客网 时间:2024/06/06 04:01

POSTGRESQL常用操作命令:

#psql --help #$ \l显示数据库 #\c dbname选择使用某数据库 #\c dbname显示数据表 

#psql -U postgres使用psql命令进入数据库 

#psql -U postgres dbname使用psql命令进入某个数据库管理 

#查询表的大小:http://www.cnblogs.com/winkey4986/p/6433704.html

#查询单个表中所有列名:select * from information_schema.colimns where table_schema='public' and table_name='users';

#统计各数据库占用磁盘大小/统计数据库中各表占用磁盘大小: http://blog.csdn.net/rocklee/article/details/51251174
#查询单个表的大小/查询所有表(包含索引)并排序/查出表大小按大小排序并分离data与index:

http://www.cnblogs.com/winkey4986/p/6433704.html  http://www.cnblogs.com/liuyuanyuanGOGO/p/3224554.html http://blog.csdn.net/kmust20093211/article/details/47615897

—————————————————————————————————————————————————————————————————————————————

POSTGRESQL配置其他用户访问本地数据库:

pg_hba.conf添加TYPE  DATABASE        USER            ADDRESS                 METHOD

#补充填写详细利于数据库安全。

http://blog.csdn.net/arcticjian/article/details/49637673
http://www.cnblogs.com/hiloves/archive/2011/08/20/2147043.html

—————————————————————————————————————————————————————————————————————————————

PG_DUMP:
#若操作命令最后只到文件夹而未命名所导出备份生成的文件名称,则会反馈:访问被拒绝。

图形化操作:
http://blog.csdn.net/lucahan/article/details/52829000
http://blog.csdn.net/wlwlwlwl015/article/details/49943949
命令行操作:
导出表: 
pg_dump -U postgres --schema-only --no-owner dbname > create_the_tables.sql
导出数据:
pg_dump -U postgres --data-only --no-owner dbname > restore_tables_data_user_and_site.sql
数据的导入:psql -U postgres dbname < C:\fulldb.sql    http://xafc2370.iteye.com/blog/1188732  
pgAdmin III 单表数据的导出导入:http://www.cnblogs.com/epic0583/p/5197473.html

—————————————————————————————————————————————————————————————————————————————

POSTGRESQL相关文档

postgresql8.1中文文档:
http://www.php100.com/manual/PostgreSQL8/
PostgreSQL 9.5.3 中文手册:
http://www.postgres.cn/docs/9.5/index.html
postgresql的源码分析: 
http://www.cnblogs.com/flying-tiger/p/6004314.html
pgAdminIII使用图解:
http://www.2cto.com/database/201312/267218.html
http://www.2cto.com/database/201312/267218.html
postgresql配置其他用户访问本地数据库:
http://blog.csdn.net/arcticjian/article/details/49637673
http://www.cnblogs.com/hiloves/archive/2011/08/20/2147043.html

—————————————————————————————————————————————————————————————————————————————

VACUUM:

vacuum;

postgresql数据库执行delete操作后,表中的记录只是被标示为删除状态,并没有释放空间,在以后的update或insert操作中该部分的空间是不能够被重用的。在postgresql中用于维护数据库磁盘空间的工具是VACUUM,其作用是删除那些已经标示为删除的数据并释放空间。但vacuum工具不能够对相应的索引进行清理,需要手动去重建索引。 

#其回收的为被删除的空间内容,故操作前需将删除的内容先查找删除掉。

#vacuum操作也可以在pgadmin上进行实现。

#如果删除了某个数据库,那这个数据库的空间会立即释放出来。

主要参考方法:

http://blog.csdn.net/u011598529/article/details/49276029

http://blog.csdn.net/ohyoyo2014/article/details/20522493

其他相关内容:

http://www.cnblogs.com/stephen-liu74/archive/2012/05/30/2306493.html

http://blog.csdn.net/smstong/article/details/17138355

pgsql解决锁表:http://blog.csdn.net/cicon/article/details/68068462

pg定期vacuum和reindex:

https://yq.aliyun.com/articles/43412

http://www.cnblogs.com/littlehb/archive/2013/04/28/3048892.html

—————————————————————————————————————————————————————————————————————————————

SELECT:

eg1:多表查询

SELECT * from "tablename"

where "tablename".id in (select id from "tablename" where "tablename".document_id in(select id from "tablename" where "tablename".post_id in (select id from "tablename" where "tablename".is_deleted=true)));

eg2:多表联查

select "tablename".id, "tablename".name from "tablename","tablename" where "tablename".id="tablename".stamp_type_id;

—————————————————————————————————————————————————————————————————————————————

DELETE:
delete from “表名” where 条件
*针对行的,没有列的列表;
*delete和update一样,一次只能工作在一个表中;

使用truncate语句:
truncate table 表名

若该表有外键,要用级联方式删除所有关联的数据TRUNCATE TABLE tablename CASCADE;

*它从一个表中删除所有数据,除其包含在pg7.4及以后版本的事务中;
*确定永久删除,从某些方面说类似于删除表并重建它,除了它更容易操作且不会重置序列生成器。
*truncate简单的将所指定表的所有行删除;

【delete适用于数据量较小的情况下,删除记录在日志中;truncate适用于数据量较大的情况下,不在日志中做删除记录】

【truncate且删除的是整张表其后不能加where,若加where必须用delete语句一条条的删除】

#在删除表中某一数据时提示为删除操作违反了表的外键约束
http://www.cnblogs.com/PongorXi/archive/2012/08/21/2648852.html
http://blog.csdn.net/fianalau/article/details/49335955
http://www.cnblogs.com/weisenz/archive/2012/04/09/2439036.html

—————————————————————————————————————————————————————————————————————————————

POSTGRESQL数据文件导出导入为JSON格式

选择Posts表内id,site_id列返回JSON对象:select row_to_json(t) from (select id,site_id from "Posts") as t;
参考资料:http://www.cnblogs.com/my4piano/p/5658264.html  http://www.alonely.com.cn/PostgreSQL/20160902/25512.html
插入Poststest1【已存在】表中已选择的Posts表内id,site_id列返回JSON对象
insert into "Poststest1" select row_to_json(t)  from (select id,site_id from "Posts") as t;
插入Poststest1【未存在】表中已选择的Posts表内id,site_id列返回JSON对象
select row_to_json(t) into "Poststest1" from (select id,site_id from "Posts") as t;
参考资料:http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html
其他相关资料:
http://blog.csdn.net/luojinbai/article/details/45676783
http://www.postgres.cn/docs/9.5/functions-json.html
http://www.cnblogs.com/alianbog/p/5658156.html

—————————————————————————————————————————————————————————————————————————————

POSTGRESQL单个表的导出导入备份方法:

#copy命令{用于表与文件(标准输出,标准输入)间的相互拷贝}

导出:
#copy “tablename” to stdout; 将整张表拷贝至标准输出,近200M数据,时间长用了一个多小时
#\copy "DocumentData" to 'D:\document.csv'with csv; copy "DocumentData" to 'D:\documentdata.sql';导出数据表中的数据为csv格式文件,导出173M费时1~2秒。

相关参考资料:

http://www.cnblogs.com/alianbog/p/5621660.html
http://www.tuicool.com/articles/jQVba2

导入:

#copy “DocumentData” from ‘D:\document.csv’ with csv header; copy "DocumentData" from 'D:\documentdata.sql';直接在有数据的表上进行导入出现错误:外键制约。

相关参考资料:

https://segmentfault.com/a/1190000008328676
http://blog.chinaunix.net/uid-7270462-id-3478360.html
http://blog.csdn.net/luckypeng/article/details/48393977

#\o 与\i命令:

\o 'D:/post.json';

同数据库内的两个表的复制
http://blog.csdn.net/luojinbai/article/details/45676783
postgresql数据库下每个数据库所对应的目录
http://www.cnblogs.com/gaojian/archive/2013/07/04/3170950.html
http://www.cnblogs.com/gaojian/archive/2013/07/04/3170950.html

其他相关资料:

http://irfen.iteye.com/blog/1974387
http://bbs.csdn.net/topics/380229266
https://stackoverflow.com/questions/3939329/putting-output-from-postgres-i-input-to-a-file
http://blog.csdn.net/wwwtotoro/article/details/71439282
http://bbs.csdn.net/topics/390302450

#postgresql有关图片数据的导入导出命令操作:

存放于documentdata中的data bytea
postgresql图片等二进制数据的存储(copy命令,bytea类型):
http://blog.csdn.net/djskl/article/details/45032593
如何将图片存入postgresql中:
http://bbs.csdn.net/topics/300038725

其他相关资料:

http://m.blog.csdn.net/drbing/article/details/51436505

http://www.itpub.net/thread-941285-1-1.html

http://www.2cto.com/database/201504/393726.html

http://www.cnblogs.com/hltswd/p/6165918.html

https://my.oschina.net/bianweiall/blog/516604

http://m.blog.csdn.net/drbing/article/details/51436505

—————————————————————————————————————————————————————————————————————————————

POSTGRESQL参数优化:
http://www.jianshu.com/p/a94f178b5887

https://www.postgresql.org/message-id/21709.1165533554@sss.pgh.pa.us
postgresql.conf参数
http://blog.csdn.net/lanonola/article/details/51283094
postgresql配置文件详解:
http://www.cnblogs.com/zhaowenzhong/p/5667434.html

—————————————————————————————————————————————————————————————————————————————

POSTGRESQL备份归档操作:

主要参考方法:

http://blog.csdn.net/taotb026/article/details/25962097

http://toplchx.iteye.com/blog/2093821

http://blog.csdn.net/sunziyue/article/details/51123148

方法一:PG_dump(热备份,可单个数据库)

方法二:文件系统备份(冷备份,全部数据库)

方法三:pg_basebackup/select pg_start_backup('label'); 联机热备份及归档恢复(热备份,可单个数据库)

#其中方法一,二,三都实践成功;

#注意,操作方法三在使用recovery.conf文件时,可使用share/目录下的recovery.conf文件进行直接的修改,示例为:restore_command = 'copy "C:\\Backup\\%f" "%p"',其中%f与%p为特定字符不要改成其他文件名称。其中在使用pg_basebackup命令:pg_basebackup -D D:\111\ -h localhost -U postgres -Ft -z -P,需在pg_hba.conf中添加host  replication   all   ::1/128   md5;在命令行备份时,注意修改postgresql.conf中max_wal_senders值前的‘#’字符要删除掉使语句生效,否则会提示其值仍为0。

其他相关内容:

pg_ctl重启pgsql数据库:pg_ctl restare -D D:\ViaDoc\PostgreSQL9.5\data

Symfoware Server:http://software.fujitsu.com/jp/manual/manualfiles/m140019/j2ul1736/05z200/index.html

postgresql日志归档设置:http://blog.itpub.net/16582684/viewspace-733940/

pg_rman【仅Linux下可使用的方法】安装使用方法:http://blog.csdn.net/silenceray/article/details/53517390

postgresql三种日志:http://blog.csdn.net/lanonola/article/details/51281213

postgresql配置文件详解:https://www.cnblogs.com/zhaowenzhong/p/5667434.html

postgresql.conf配置生效方法:https://www.cnblogs.com/chjbbs/p/6484295.html?utm_source=itdadao&utm_medium=referral


原创粉丝点击