安装postgresql
$sudo apt-get install postgresql

这样就安装好了PostgreSQL 8.3了,该安装将自动创建一个缺省的数据库集群(pgsqldb.org中的译法)“main”,且生成一个数据库超级用户postgres。

以超级用户postgres登录
sudo su postgres -c psql template1

修改密码
ALTER USER postgres WITH PASSWORD 'postgres';

接下来就是要对数据库用户及权限进行设置了,首先要得到超级用户postgres的一个Shell,在这里可以通过下面的方式得到:
$sudo -u postgres sh

在这个Shell中创建一个同你用户相同的数据库用户,在这里我使用chimin,因为这也是我登录Ubuntu的用户名

$createuser -A -D -P chimin

然后为该用户创建一个数据库,在这里我以mydb为例

$createdb -O chimin mydb

注意以上操作都是用户在postgres的Shell中完成的,然后退出该用户Shell环境,进入自己用户的Shell中。

$exit

当然您也可以使用命令的简写方式:

sudo -u postgres createuser -A -D -P chimin
sudo -u postgres createdb -O chimin mydb

现在作为chimin用户,你可以通过下面的命令连接到你的mydb数据库中了

$psql mydb

退出用\q

您可以使用图形化软件 pgadmin3 来管理您的 PostgreSQL 数据库,可以使用以下命令来安装该软件:
$sudo apt-get install pgadmin3


一些PostgreSQL的操作:
导出数据到sql文件:

pg_dump -U postgres -d mydatabase > dump.sql
从sql文件导入数据:
psql -d newdatabase -U postgres -f dump.sql
执行sql文件:
在相应的数据库中 \i sql文件 (这个如果是在windows下,要将\改为/)
在shell中 psql -s 数据库名 -f sql文件


下面这个是基本sql的

从一个表中查询数据,将结果插入到另一个表中:
insert into temptable select id from product where category_id=3;
create table temptest as select id from product where category_id=3;
以上两行都是从product表中找到category_id为3的记录的id号,然后将id号插入到temptable中。不同的时第一行的sql语句 要求数据库中必须已经存在temptable表,此时temptable表可以不知有id这一个字段,只不过插入数据之后其他字段为空;第二行的sql语 句不要求数据库已经存在temptable表,它会创建这个表,然后将数据插入,此时temptable表中只有id一个字段

创建用户:
CREATE USER username WITH PASSWORD 'password'
这就创建了一个具有所有权限的普通用户
创建超级用户:
CREATE ROLE name SUPERUSER(这个角色是不能登录的)

用户登录:
psql -h IP地址 -p 端口号 -U 用户名 默认数据库
其中-h IP地址, -p 端口号可以省略;默认IP地址localhost,默认端口号是5432。默认的数据库好像不能够省略,省略之后PostgreSQL会自动使用名字为用户名的数据库作为默认数据库,如果这个数据库不存在就会报错。

在PostgreSQL中,创建用户:
CREATE USER  name  [ [ WITH ]  option [ ... ] ]  [ WITH ] { ENCRYPTED | UNENCRYPTED } PASSWORD ‘password’[ [ WITH ]  option [ ... ] ]
其中Option可以是:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CONNECTION LIMIT connlimit
| VALID UNTIL ’timestamp’
一个创建用户的例子:
CREATE USER testuser WITH CREATEDB PASSWORD '123456'
以上的语句创建了一个名字为testuser,密码为123456,具有创建数据库权限的用户

修改用户属性的方法是:
ALTER USER name [ [ WITH ] option [ ... ] ]
其中option可以是:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CONNECTION LIMIT connlimit
| { ENCRYPTED | UNENCRYPTED } PASSWORD ’password’
| VALID UNTIL ’timestamp’
一个修改用户的例子是:
ALTER USER testuser WITH CREATEROLE
上面的语句就给testuser这个用户加上了创建角色的权限 

删除用户:
DROP USER [ IF EXISTS ] name [, ...]

角色可以理解为用户。不同的地方是用户创建时默认是带有登录权限的,而角色没有,所有如果创建了一个角色没有给显式地赋予LOGIN 权限,这个角色相当于是不能用的,因为不能登录。
创建角色:
CREATE ROLE name
一个创建角色的例子:
CREATE ROLE testrole LOGIN
创建了一个具有登录权限的角色
另外创建角色的时候也可以加上创建用户时的option