安裝postgresql
$sudo apt-get install postgresql

這樣就安裝好了PostgreSQL 8.3了,該安裝將自動創(chuàng)建一個缺省的數(shù)據(jù)庫集群(pgsqldb.org中的譯法)“main”,且生成一個數(shù)據(jù)庫超級用戶postgres。

以超級用戶postgres登錄
sudo su postgres -c psql template1

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

接下來就是要對數(shù)據(jù)庫用戶及權(quán)限進行設(shè)置了,首先要得到超級用戶postgres的一個Shell,在這里可以通過下面的方式得到:
$sudo -u postgres sh

在這個Shell中創(chuàng)建一個同你用戶相同的數(shù)據(jù)庫用戶,在這里我使用chimin,因為這也是我登錄Ubuntu的用戶名

$createuser -A -D -P chimin

然后為該用戶創(chuàng)建一個數(shù)據(jù)庫,在這里我以mydb為例

$createdb -O chimin mydb

注意以上操作都是用戶在postgres的Shell中完成的,然后退出該用戶Shell環(huán)境,進入自己用戶的Shell中。

$exit

當然您也可以使用命令的簡寫方式:

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

現(xiàn)在作為chimin用戶,你可以通過下面的命令連接到你的mydb數(shù)據(jù)庫中了

$psql mydb

退出用\q

您可以使用圖形化軟件 pgadmin3 來管理您的 PostgreSQL 數(shù)據(jù)庫,可以使用以下命令來安裝該軟件:
$sudo apt-get install pgadmin3


一些PostgreSQL的操作:
導(dǎo)出數(shù)據(jù)到sql文件:

pg_dump -U postgres -d mydatabase > dump.sql
從sql文件導(dǎo)入數(shù)據(jù):
psql -d newdatabase -U postgres -f dump.sql
執(zhí)行sql文件:
在相應(yīng)的數(shù)據(jù)庫中 \i sql文件 (這個如果是在windows下,要將\改為/)
在shell中 psql -s 數(shù)據(jù)庫名 -f sql文件


下面這個是基本sql的

從一個表中查詢數(shù)據(jù),將結(jié)果插入到另一個表中:
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語句 要求數(shù)據(jù)庫中必須已經(jīng)存在temptable表,此時temptable表可以不知有id這一個字段,只不過插入數(shù)據(jù)之后其他字段為空;第二行的sql語 句不要求數(shù)據(jù)庫已經(jīng)存在temptable表,它會創(chuàng)建這個表,然后將數(shù)據(jù)插入,此時temptable表中只有id一個字段

創(chuàng)建用戶:
CREATE USER username WITH PASSWORD 'password'
這就創(chuàng)建了一個具有所有權(quán)限的普通用戶
創(chuàng)建超級用戶:
CREATE ROLE name SUPERUSER(這個角色是不能登錄的)

用戶登錄:
psql -h IP地址 -p 端口號 -U 用戶名 默認數(shù)據(jù)庫
其中-h IP地址, -p 端口號可以省略;默認IP地址localhost,默認端口號是5432。默認的數(shù)據(jù)庫好像不能夠省略,省略之后PostgreSQL會自動使用名字為用戶名的數(shù)據(jù)庫作為默認數(shù)據(jù)庫,如果這個數(shù)據(jù)庫不存在就會報錯。

在PostgreSQL中,創(chuàng)建用戶:
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’
一個創(chuàng)建用戶的例子:
CREATE USER testuser WITH CREATEDB PASSWORD '123456'
以上的語句創(chuàng)建了一個名字為testuser,密碼為123456,具有創(chuàng)建數(shù)據(jù)庫權(quán)限的用戶

修改用戶屬性的方法是:
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這個用戶加上了創(chuàng)建角色的權(quán)限 

刪除用戶:
DROP USER [ IF EXISTS ] name [, ...]

角色可以理解為用戶。不同的地方是用戶創(chuàng)建時默認是帶有登錄權(quán)限的,而角色沒有,所有如果創(chuàng)建了一個角色沒有給顯式地賦予LOGIN 權(quán)限,這個角色相當于是不能用的,因為不能登錄。
創(chuàng)建角色:
CREATE ROLE name
一個創(chuàng)建角色的例子:
CREATE ROLE testrole LOGIN
創(chuàng)建了一個具有登錄權(quán)限的角色
另外創(chuàng)建角色的時候也可以加上創(chuàng)建用戶時的option