-------------------------------
在freebsd下面默认的PostgreSQL用户是pgsql。首先要切换到pgsql用户:
#su pgsql
下一步是连接到指定的数据库,例如testdb
$ psql testdb
Welcome to psql 8.1, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL
commands
\? for help with psql
commands
\g or terminate with semicolon
to execute query
\q to quit
testdb=>
-------------------------------
连接Postgres服务器后,
可能第一件事,就是连接到一个数据库进行实际的操作了,
如果您没有在运行 psql 命令时指定连接的数据库,
那么现在可以发出指令来连接一个数据库,
当然,在运行 psql 命令时指定连接的数据库的话,
也可以使用下面这个指令来改变连接的数据库。
命令:\c 数据库名
例子:
testdb=>\c tesdb1
这条命令将当前连接的testdb数据库改变成 testdb1 。
------------------------------
下面就来看看如何断开与Postgres服务器的连接,
命令:\q
这个命令很简单,执行这个指令后,
就回到了shell提示符下了。
------------------------------
------------------------------
将数据库 导出到 文件标识符
命令:\copy 表名 to 文件名|标准输出 [delimiter as '分隔符'] [null as
'null表示的字符串' ]
[csv quote as
'引号的类型']
解释:
可以将表中的数据输出到 文件或标准输出。
delimiter as '分隔符' :说明输出设备的文本中表的每个字段用什么字符分割,默认是tab;
null as 'null表示的字符串':说明输出设备的文本中表的NULL值的表示方法,默认为“\N”;
csv quote as '引号类型' :说明导出的csv文件中的引号类型是什么,
对于Postgres7.4以前的版本,不支持csv的导入与导出,这时不要使用这个可选项。
例子:
testdb=>\copy testtable to data.csv delimiter as ',' csv quote
as '"'
这条命令将testtable表中的内容作为SQL语句,导出data.csv文件中。
delimiter as ',' :说明data.txt文本中表的每个字段用“逗号”分割;
csv quote as '"' :说明csv中的引号类型是“双引号”。
像前面说的:这个例子不适用在Postgres7.4以前的版本。
------------------------------
从 文件标识符 导入数据到数据库
命令:\copy 表名 form 文件名|标准输入 [delimiter as '分隔符'] [null as
'null表示的字符串' ]
[csv quote as
'引号的类型']
解释:
可以从 文件名|标准输入 两个文件设备导入到指定的表中
delimiter as '分隔符' :说明输入设备的文本中表的每个字段用什么字符分割,
通常是tab,取决于copy出去的文件是什么参数;
null as 'null表示的字符串':说明输入设备的文本中表的NULL值的表示方法,通常为“\N”;
csv quote as '引号类型' :说明导入的csv文件中的引号类型是什么,
取决于copy出去的文件是什么参数。
例子:
testdb=>\copy testtable from data.csv delimiter as ',' csv quote
as '"'
这条命令将data.csv文件中的文本,作为sql语句导入到testtable表,
delimiter as ',' :说明data.txt文本中表的每个字段用“逗号”分割;
csv quote as '"' :说明csv中的引号类型是“双引号”。
------------------------------
显示和设置客户端字符集。
命令:\encoding [ encoding ]
解释:
在数据库领域,存在字符集的转换问题,
一般地,服务器端字符集是在建立数据库时指定的,
为了能够在不同的客户终端显示正确的数据,
需要认为的为客户终端设置客户端字符集。
如果服务器端的字符集是EUC_JP(日语字符集),
而客户终端的字符集是GBK,
捡索出来的汉字数据很可能就出现乱码,
所以要统一两边的字符集。
例子:
1、显示客户端字符集
testdb=>\encoding
这条命令没有带可选参数,
所以显示当前的客户终端字符集。
2、设置客户端字符集
testdb=>\encoding 'EUC_JP'
这条命令设置当前的客户终端字符集为“EUC_JP”,
如果服务器端的字符集也是“EUC_JP”,就可以正常显示数据了。
------------------------------
除了上面这些介绍,在这个客户终端可以使用所有标准SQL语句,
对数据库进行操作。