postgresql 常用命令


pg_dump :

                用于提取 PostgreSQL数据库到一个脚本文件或其他的存档文件

导出数据::  示例:

     pg_dump -U postgres(用户名)  (-t 表名)  数据库名(缺省时同用户名)  > 路径/文件名.sql

     pg_dump    -U postgres    -t  f0021b0002lx02_path  >    C:\EFI\Boot\f0021b0002lx02_path.sql

    


pg_dump用于提取 PostgreSQL数据库到一个脚本文件或其他的存档文件

用法:

pg_dump [connection-option...] [option...] [dbname]

描述:

pg_dump用于备份postgresql数据库,它可以在数据库运行时使用,pg_dump不会阻塞其他的用户访问数据库。

转储的内容可以脚本或存档的方式输出。脚本转储指包含SQL命令的纯文本文件,这些 SQL 命令可以用于重建该数据库并将之恢复到保存成脚本的时候的状态。要从这些脚本中恢复数,需要使用psql命令。脚本文件可以被用来重建数据库。

另一种归档文件格式必须和pg_restore一起使用重建数据库。它们允许pg_restore有选择地进行恢复,甚至在恢复前重新排列项目。归档文件格式被设计成跨平台移植。

当一种归档文件格式与pg_restore结合使用,那么pg_dump就能提供一种灵活的归档和传输机制。 pg_dump可以用于备份整个数据库,然后就可以使用pg_restore检查这个归档和/或选择要恢复的数据库部分。最灵活的输出文件格式是“自定义”格式(-Fc)。它允许选择和重新排序的所有归档的项目,在默认情况下被压缩。

在运行pg_dump的时候,你应该检查任何警告的输出(在标准错误上打印)。

Options

下面的命令行选项控制内容及格式输出

dbname

指定数据库的名称,如果没有指定,会引用环境变量 PGDATABASE, 如果环境变量没有设置,那么会指定使用用户名来连接。

-a
--data-only

只转储数据,而不是架构(数据的定义)。表中的数据,大对象的序列值被转储。此选项与specifying --section=data类似。

-b
--blobs

包含大对象,当指定参数为 --schema--table, or --schema-only 是该动作默认执行,所以-b选项只在选择性转储数据时有用。

-c
--clean

输出在创建数据库创建命令之前先清理(删除)该数据库对象的命令
此选项只对纯文本格式有意义的。对于归档格式,你可以在调用pg_restore时指定该选项

-C
--create

以一条创建该数据库本身并且与这个数据库联接等命令开头进行输出。 (如果是这种形式的脚本,那么你在运行脚本之前和哪个数据库联接就 不重要了。) ,此选项只对纯文本格式有意义的。对于归档格式,你可以在调用pg_restore时指定该选项。

-E encoding
--encoding=encoding

指定字符集编码。 默认情况下使用数据库编码。 (另一个方法是设置 PGCLIENTENCODING环境来达到同样的结果

-f file
--file=file

把输出发往指定的文件.如果忽略这些,则使用标准输出。

-F format
--format=format

选择输出的格式。 如下:

p
plain

输出一个纯文本 SQL 脚本文件( 默认)

c
custom

输出一个自定义格式用于pg_store 。最灵活的输出格式,它允许恢复过程中手动选择和重新排序的档案条目。默认压缩。

d
directory

输出一个目录格式的存档用于pg_restore输入。 这将创建带有一个存储每张表和BLOB数据的文件的目录,加上一个所谓的内容文件表用机器可以读取的格式 描述转储对象, 这种格式pg_restore可以读取。 默认压缩

t
tar

输出适合输入到 pg_restore 里的tar归档文件. 使用这个归档允许在恢复数据库时重新排序和/或把表结构排除在外. 同时也可能可以在恢复的时候限制对哪些数据进行恢复

-i
--ignore-version

一个工具选项,现在被忽略了.

-n schema
--schema=schema

指定输出的框架名。指定的框架将被输出转储。

-N schema
--exclude-schema=schema

排除输出的框架名。指定的框架将不被输出。


-o
--oids

为每个表都输出对象标识(OID). 如果你的应用在某种程度上引用了OID字段的话,(比如,在外键约束中 用到). 那么使用这个选项. 否则,不应该使用这个选项

-O
--no-owner

不把对象的所有权设置为对应源数据库。 

这个选项只是对纯文本格式有意义.对于其它格式,在你调用 pg_restore 的时候你可以声明该选项.

-R
--no-reconnect

此选项已经过时的,但可以向后兼容.

-s
--schema-only

只输出架构(数据定义),不输出数据。

-S username
--superuser=username

在某些场合,pg_dump 创建的脚本或者归档需要有 超级用户访问的权限,比如在关闭触发器或者为大纲元素甚至所有属性时. 这个选项声明在这些场合时使用的用户名

-t table
--table=table

只输出表 table的数据

-T table
--exclude-table=table

不输出表table的数据

-v
--verbose

声明冗余模式。 这样将令 pg_dump 在标准错误上打印 进度信息.

-V
--version

输出pg_dump的版本信息然后退出.

-x
--no-privileges
--no-acl

避免输出 ACL(赋予/撤消 命令)和表的所有者关系信息

-Z 0..9
--compress=0..9

声明在那些支持压缩的格式中使用的压缩级别.零意味着没有 压缩 (目前只有客户化格式支持压缩) 

--no-security-labels

不转储安全标签.

--no-tablespaces

不输出选择表空间命令.

--no-unlogged-table-data

不转储没有日志记录的表的内容

--quote-all-identifiers

强制引用所有标识符 ,这可能用于转储迁移到未来的版本引入额外的关键字.

-?
--help

显示帮助并退出.

以下选项控制数据库连接参数.

-h host
--host=host

声明运行服务器 的机器的主机名.缺省是使用本地Unix主控套接字,而不是一个 IP 联接. 如果主机名以斜扛开头,则它被用做到 Unix 域套接字的路径

-p port
--port=port

声明服务器 正在侦听并等待联接的TCP/IP 端口或本地 Unix 主控套接字文件句柄. 缺省的端口号是5432,或者环境变量 PGPORT 的值(如果存在)

-U username
--username=username

以给出用户身分联接

-w
--no-password          从来不需要密码提示
-W
--password

强制口令提示.如果服务器需要口令认证,那么这个动作应该自动发生


--role=rolename

指定一个角色的名字是用来创建转储





连接数据库, 默认的用户和数据库是postgres
psql -U user -d dbname

切换数据库,相当于mysql的use dbname
\c dbname
列举数据库,相当于mysql的show databases
\l
列举表,相当于mysql的show tables
\dt
查看表结构,相当于desc tblname,show columns from tbname
\d tblname

\di 查看索引 

创建数据库: 
create database [数据库名]; 
删除数据库: 
drop database [数据库名];  
*重命名一个表: 
alter table [表名A] rename to [表名B]; 
*删除一个表: 
drop table [表名]; 

*在已有的表里添加字段: 
alter table [表名] add column [字段名] [类型]; 
*删除表中的字段: 
alter table [表名] drop column [字段名]; 
*重命名一个字段:  
alter table [表名] rename column [字段名A] to [字段名B]; 
*给一个字段设置缺省值:  
alter table [表名] alter column [字段名] set default [新的默认值];
*去除缺省值:  
alter table [表名] alter column [字段名] drop default; 
在表中插入数据: 
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......); 
修改表中的某行某列的数据: 
update [表名] set [目标字段名]=[目标值] where [该行特征]; 
删除表中某行数据: 
delete from [表名] where [该行特征]; 
delete from [表名];--删空整个表 
创建表: 
create table ([字段名1] [类型1] ;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;); 

\copyright     显示 PostgreSQL 的使用和发行条款
\encoding [字元编码名称]
                 显示或设定用户端字元编码
\h [名称]      SQL 命令语法上的说明,用 * 显示全部命令
\prompt [文本] 名称
                 提示用户设定内部变数
\password [USERNAME]
                 securely change the password for a user
\q             退出 psql


可以使用pg_dump和pg_dumpall来完成。比如备份sales数据库: 
pg_dump drupal>/opt/Postgresql/backup/1.bak 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值