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の日本語ドキュメントが公開されているんで
何か困ったことがあったらここをたずねてみましょう。
(おまけ)
psql の主要(?)コマンド一覧
/l ... データベース一覧の表示
/du ... ユーザ名一覧の表示
/dt ... テーブル一覧の表示
/i ... ファイルに書かれているSQLを実行