postgre数据库: psql常用命令大全
(2009-12-04 15:28:43)
标签:
it |
启动postgre数据库(一般是在后台运行):
/usr/bin/postmaster -i -D
/full_path/to/your/db
&
创建数据库:
/usr/bin/createdb my_db_name
然后可通过psql进行对数据库的操作。
psql是postgre数据库的交互式终端程序。
备份数据库(用tar格式):
/usr/bin/pg_dump -Ft -b -o my_db_name
> my_backup_name.tar
恢复数据库(用tar格式):
1.恢复用户:
/usr/bin/createuser -U my_db_user_name
2.创建数据库:
/usr/bin/createdb
-E UNICODE -U my_db_user_name my_db_name
3.恢复数据库内容(源是tar格式):
/usr/bin/pg_restore -d
my_db_name my_backup_name.tar
4.恢复数据库中table的所有权信息:
#========================================================================
From http://hi.baidu.com/hulongbing53/blog/item/8a37e4cbef769e15bf09e65d.html
psql常用命令大全
创建数据库:
然后可通过psql进行对数据库的操作。
psql是postgre数据库的交互式终端程序。
备份数据库(用tar格式):
恢复数据库(用tar格式):
for i in `echo "\d" | psql my_db_name | awk {'print $3'}` do;
echo "ALTER TABLE $i OWNER TO my_db_user_name;" | psql my_db_name;
done
#========================================================================
From http://hi.baidu.com/hulongbing53/blog/item/8a37e4cbef769e15bf09e65d
psql常用命令大全
2009-10-22 16:12
- \d [ table ]
- 列出数据库中的表,或(如果声明了)表 table 的列/字段.如果表名是用统配符 (“*”)声明的,列出所有表和表的列/字段信息.
- \da
- 列出所有可用聚集.
- \dd object
- 列出 pg_description 里对声明的对象的描述,对象可以是一个表,表中的列/字段,类型,操作符或聚集.
-
小技巧:并非所有对象在 pg_description 里有描述.此后期命令在快速获取
Postgres 内部特性时很有用. - \df
- 列出函数.
- \di
- 只列出索引.
- \do
- 只列出操作符.
- \ds
- 只列出序列.
- \dS
- 列出系统表和索引.
- \dt
- 只列出非系统表.
- \dT
- 列出类型.
- \e [ filename ]
- 编辑当前查询缓冲或文件 filename 的内容.
- \E [ filename ]
- 编辑当前查询缓冲或文件 filename 的内容并且在编辑结束后执行之.
- \f [ separator ]
- 设置域分隔符.缺省是单个空白.
- \g [ { filename | |command } ]
- 将当前查询输入缓冲送给后端并且(可选的)将输出放到 filename 或通过管道将输出送给一个分离的Unix shell 用以执行 command.
- \h [ command ]
- 给出声明的 SQL 命令的语法帮助.如果 command 不是一个定义的 SQL
命令(或在
psql 里没有文档),或没有声明 command ,这时 psql将列出可获得帮助的所有命令的列表.如果命令 command 是一个通配符(“*”),则给出所有 SQL 命令的语法帮助. - \H
- 切换
HTML3 输出.等效于 -H 命令行选项. - \i filename
- 从文件 filename 中读取查询到输入缓冲.
- \l
- 列出服务器上所有数据库.
- \m
- 切换老式监视器样的表输出,这时表周围有边界字符包围着.这是标准 SQL 输出.缺省时,psql 只包括列/字段间的分隔符.
- \o [ { filename | |command } ]
- 将后面的查询结果输出到文件 filename 或通过管道将后面结果输出到一个独立的Unix shell 里执行 command.如果没有声明参数,将查询结果输出到 stdout.
- \p
- 打印当前查询缓冲区.
- \q
- 退出
psql 程序. - \r
- 重置(清空)查询缓冲区.
- \s [ filename ]
- 将命令行历史打印出或是存放到 filename.如果省略
filename
,将不会把后继的命令存放到历史文件中.此选项只有在
psql 配置成使用输入行时才有效. - \t
- 切换输出的列/字段名的信息头和行记数脚注(缺省是开).
- \T table_options
- 允许你在使用HTML 3.0 格式输出时声明放在表 table ... 中的标记选项.例如,border 将给你的表以边框.这必须和 \H 后期命令一起使用.
- \x
- 切换扩展行格式.当打开时,每一行将在左边打印列/字段名而在右边打印列/字段值.这对于那些不能在一行输出的超长行是很有用的.HTML 行输出模式也支持这个标记.
- \w filename
- 将当前查询缓冲区输出到文件 filename.
- \z
- 生成一个带有正确 ACL(赋予/禁止 权限)的数据库中所有表的输出列表.
- \! [ command ]
- 回到一个独立的Unix shell或执行一个Unix 命令 command.
- \?
- 获得关于反斜杠 (“\”) 命令的帮助.
一般选项
\c[onnect] [数据库名|- [用户名称]]
联接到新的数据库 (当前为 "test")
\cd [目录名]
\copyright
\encoding [编码]
显示或设置客户端编码
\h [名字]
\q
\set [名字 [值]]
设置内部变量, 如果没有参数就列出所有
\timing
\unset 名字
\! [命令]
信息选项
\d [名字]
\d{t|i|s|v|S} [模式] (加 "+" 获取更多信息)
列出表/索引/序列/视图/系统表
\da [模式]
\db [模式]
\dc [模式]
\dC
\dd [模式]
\dD [模式]
\df [模式]
\dg [模式]
\dn [模式]
\do [名字]
\dl
\dp [模式]
\dT [模式]
\du [模式]
\l
\z [模式]
命令:
描述:
语法:
ABORT [ WORK | TRANSACTION ]
命令:
描述:
语法:
ALTER DATABASE 名字 SET 参数 { TO | = } { 值 | DEFAULT }
ALTER DATABASE 名字 RESET 参数
ALTER DATABASE 名字 RENAME TO 新名字
ALTER DATABASE 名字 OWNER TO 新属主
命令:
描述:
语法:
ALTER GROUP 组名称 ADD USER 用户名称 [, ... ]
ALTER GROUP 组名称 DROP USER 用户名称 [, ... ]
ALTER GROUP 组名称 RENAME TO 新名称
命令:
描述:
语法:
ALTER INDEX 索引名称
动作 [, ... ]
ALTER INDEX 索引旧名称
RENAME TO 索引新名称
动作为以下之一:
OWNER TO 新属主
SET TABLESPACE indexspace_name
命令:
描述:
语法:
ALTER SEQUENCE 名字 [ INCREMENT [ BY ] 递增 ]
[ MINVALUE 最小值 | NO MINVALUE ] [ MAXVALUE 最大值 | NO MAXVALUE ]
[ RESTART [ WITH ] 开始 ] [ CACHE 缓存 ] [ [ NO ] CYCLE ]
命令:
描述:
语法:
ALTER TABLE [ ONLY ] 表名 [ * ]
action [, ... ]
ALTER TABLE [ ONLY ] 表名 [ * ]
RENAME [ COLUMN ] 字段名 TO 新字段名
ALTER TABLE 表名
RENAME TO 新表名
action 为下面的一种:
ADD [ COLUMN ] 字段名 类型 [ 字段约束 [ ... ] ]
DROP [ COLUMN ] 字段名 [ RESTRICT | CASCADE ]
ALTER [ COLUMN ] 字段名 TYPE 类型 [ USING 表达式 ]
ALTER [ COLUMN ] 字段名 SET DEFAULT 表达式
ALTER [ COLUMN ] 字段名 DROP DEFAULT
ALTER [ COLUMN ] 字段名 { SET | DROP } NOT NULL
ALTER [ COLUMN ] 字段名 SET STATISTICS integer
ALTER [ COLUMN ] 字段名 SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
ADD 表约束
DROP CONSTRAINT 约束名字 [ RESTRICT | CASCADE ]
CLUSTER ON 索引名称
SET WITHOUT CLUSTER
SET WITHOUT OIDS
OWNER TO 新属主
SET TABLESPACE 表空间名字
命令:
描述:
语法:
ALTER TRIGGER 名字 ON 表 RENAME TO 新名字
命令:
描述:
语法:
ALTER USER name [ [ WITH ] option [ ... ] ]
where option can be:
CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'abstime'
ALTER USER name RENAME TO newname
ALTER USER name SET parameter { TO | = } { value | DEFAULT }
命令: