It_lives_vainlyの日記 このページをアンテナに追加 RSSフィード

2008-04-08

[][] PostgreSQL導入

Pいままで少しの手間を惜しんで、ファイルベースでもろもろのデータを管理していた

んですけど、さすがにデータベース使って管理したほうが楽できるだろうって

ことで、PostgreSQLを導入してみることにしました。

こんなもんは、多少、習得に時間がかかったとしても、後々のことを考えると

やっちゃったほうがいいんです。

そんなわけで早速インストールから

# aptitude install postgresql-8.1

インストール後の設定については詳しく調べてません。

ま、後々でもよいでしょう。

インストールが終わったら、postgresqlのユーザを作成します。

# su - postgres

postgres> createuser ${利用するユーザ名}

postgres> psql

postgres=# \du // ユーザ一覧の表示

List of roles

Role name | Superuser | Create role | Create DB | Connections | Member of

-----------+-----------+-------------+-----------+-------------+-----------

${ユーザ名} | no | no | no | no limit |

postgres | yes | yes | yes | no limit |

(2 rows)

psql ってのは、PostgreSQL用のシェルみたいなもんで、SQLをここに書くことで

データベースの操作が行えます

PostgreSQLのコマンドである、"\du"が登録されているユーザ一覧を表示するコマンドになります。

PostgreSQLシェルを抜けるのは、"\q"を利用します

postgres=# \q // exit

postgres> exit // postgres ユーザを抜ける

さて、PostgreSQLインストールしたときに作成されるユーザ"postgres"は、パスワード

設定されていないので、rootからじゃ無ければ呼び出せません。

サーバを公開するとなったら、postgres にパスワードが設定されて*いない*方が良いの

かもしれませんが、遊んでみるのにはちょっと不便だったので、パスワード設定を

しておきました。

# passwd postgres // postgres のユーザパスワード設定

# exit

user> su - postgres

postgres> // postgres さんになれるようになった

ようやく、データベースを作成します。

postgres> createdb ${作成するデータベース名}

CREATE DATABASE

postgres> exit

この先の作業は、postgresさんで行う必要が無いので、作業ユーザから行います。

作成したユーザと、データベースを使うようにpsql引数として渡します

user> psql -U ${ユーザ名} -d ${データベース名}

${データベース名}=>\l // データベース一覧

これで、一応作業環境が用意できました。

とりあえず、テーブルとか作って遊んでみることにします

user=> create table sample( id integer, name varchar(32) );

user=> \dt // テーブル一覧の表示

List of relations

Schema | Name | Type | Owner

--------+--------+-------+-------

public | sample | table | ${ユーザ名}

(1 row)

user=> insert into sample( id, name ) values( 0, 'ほげほげ' );

INSERT 0 1

user=> insert into sample( id, name ) values( 0, 'ひげひげ' );

INSERT 0 1

user=> select * from sample;

id | name

----+----------

0 | ほげほげ

1 | ひげひげ

(2 rows)

テーブルが作成できたんで、ドロップ(削除)してみます

user=> drop table sample;

DROP TABLE

user=> \dt

No relations found. // ちゃんと消えてた

テーブルの作成なんかは、psqlに書き込むんじゃなくって、ファイルにSQLを書いといた

方が当然扱いやすいでしょう。

(test.sql)

create table sample( id integer, name varchar(32) );

ファイルに書いたSQLを実行するのには、"\i"コマンドを使います

user=> \i ./test.sql

日本PostgreSQLユーザ会で、PostgreSQLの日本語ドキュメントが公開されているんで

何か困ったことがあったらここをたずねてみましょう。

http://www.postgresql.jp/


(おまけ)

psql の主要(?)コマンド一覧

/l ... データベース一覧の表示

/du ... ユーザ名一覧の表示

/dt ... テーブル一覧の表示

/i ... ファイルに書かれているSQLを実行