连接数据库
引用 ./psql -U username -d dbname
列举数据库
引用 psql> \l
列举表
引用 psql> \dt
执行sql文件
引用 psql> \i test.sql
查看执行时间
引用 psql> \timing
psql> select * from tablename;
查看表结构
引用 psql> \d tablename
切换数据库
引用 psql> \c dbname
查看帮助
引用 psql> \?
退出 psql
引用 psql> \q
(2)pg_dump
备份表:
引用 ./pg_dump -U username -h hostaddress -t tablename dbname > filename ;
备份多个表:
引用 ./pg_dump -U username -h hostaddress -t tablenameA -t tablenameB dbname > filename ;
备份数据库:
引用 ./pg_dump -U username -h hostaddress dbname > filename ; --默认导出schema和数据copY文
./pg_dump -U username -h hostaddress --data-only dbname > filename ; --只导出数据
./pg_dump -U username -h hostaddress --inserts dbname > filename ; --数据INSERT文
./pg_dump -U username -h hostaddress --column-inserts dbname > filename ; --带字段名的数据INSERT文
恢复数据库:
引用 ./psql -U username -h hostaddress -d dbname < filename ;
文本文件模式:
引用 Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
tar.gz文件模式:
引用 Backup: $ pg_dump -U {user-name} {source_db} -F tar -f {dumpfilename.tar.gz}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.tar.gz}
(3)copY
导出表到默认输出STDOUT:
引用 psql> copY tablename TO STDOUT;
导出表到sql文件:
引用 psql> copY tablename TO '/home/tablename.sql';
指定导出间隔符,默认是 \t ,这里为 | :
引用 psql> copY tablename TO STDOUT DEliMITER '|';
导出指定字段的数据:
引用 psql> copY tablename (name,email) TO STDOUT;
导出为CSV格式:
引用 psql> copY tablename (name,email) TO '/home/tablename.csv' CSV header;
把SELECT文结果导出到CSV:
引用 copY (select * from tablename) TO '/tmp/output.csv' DEliMITER ','
通过psql实现:
引用 psql dbname -c "select * from tablename" -A -F,| sed '$d' > /tmp/output.csv
引用 psql dbname -f /usr/local/src/myselect.sql -A -F,| sed '$d' > /tmp/output.csv
从文件导入数据:
引用 psql> copY tablename FROM '/home/tablename.sql';
导入文件数据,指定间隔符为 | :
引用 psql> copY tablename FROM '/home/tablename.sql' DEliMITER |;
(4)其他
设置编码:
引用 psql> CREATE DATABASE new_my_db with template=template0 enCoding='UTF8' lc_collate='ja_JP.UTF-8' lc_ctype='ja_JP.UTF-8';
创建一个只读user
引用 CREATE RolE xxx LOGIN PASSWORD 'yyy'; GRANT CONNECT ON DATABASE vl60_acct_rensn TO xxx; GRANT USAGE ON SCHEMA public TO xxx; GRANT SELECT ON cmn_account TO xxx; GRANT SELECT ON paramsetting TO xxx; GRANT SELECT ON cmn_mailaccount TO xxx; GRANT SELECT ON log_mailaccount TO xxx; SELECT 'GRANT SELECT ON ' || relname || ' TO xxx;' FROM pg_class JOIN pg_namespace ON pg_namespace.oID = pg_class.relnamespace WHERE nspname = 'public' AND relkind IN ('r','v') 总结
以上是内存溢出为你收集整理的PostgreSQL常用命令全部内容,希望文章能够帮你解决PostgreSQL常用命令所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)