PostgreSQL常用命令
发布时间:2020-12-13 18:20:34 所属栏目:百科 来源:网络整理
导读:(1)psql 连接数据库 引用 ./psql -U username -d dbname 列举数据库 引用 psql l 列举表 引用 psql dt 执行SQL文件 引用 psql i test.sql 查看执行时间 引用 psql timing psql select * from tablename; 查看表结构 引用 psql d tablename 切换数据库
(1)psql
连接数据库
引用
./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')
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |