3.3. データベース管理

この時点でPostgresは正常に稼働していると 仮定し、ここからは実際にデータベースを作成し、データベースを 管理する時の基本的なコマンドを紹介します。

ほとんどのPostgresアプリケーションは、 データベース名が特に指定されてなければ、コンピュータの アカウント名と同じものをデータベース名とします。

データベース管理者が、あなたのアカウントにデータベース作成権限を与 えていない場合、あなたは管理者から使用する(既に存在する)データベー ス名を教えてもらっているはずです。この場合、データベースの作成/削 除のセクションは読み飛ばして下さい。

3.3.1. データベースの作成

mydbという名前のデータベースを 作成したいとします。この場合、下記のコマンドで作成 することができます。

% createdb mydb
     

データベースを作成する権限がない場合、下記のような メッセージが表示されます。

% createdb mydb
NOTICE:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mydb.
     

Postgresではデータベース数の作成制限は ありません。また、データベースを作成した人がそのデータベースの 管理者となります。データベース名は、必ずアルファベットから 始まり、32文字以内である必要があります。すべてのユーザは データベース管理者の権限を持っているのではなく、もし 作成しようとしてもPostgresが 拒否した場合は、サイト管理者から、データベースを作成できる 権限を与えてもらって下さい。この場合は、サイト管理者に 問い合わせて下さい。

3.3.2. データベースとの接続

データベースを作成できたら、下記の方法でそのデータベースと 接続します。

このマニュアルに書かれている例を実際に実行するためには、 psqlを起動させて下さい。 下記のコマンドを入力することによって、 mydbという名前のデータベースに 接続することができます。
% psql mydb
     
実行したら、下記のようなメッセージが表示されます。
Welcome to psql, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

mydb=>
     

このプロンプトは、ターミナルモニタはSQLの問い合わせの 入力待ち状態であることを意味しています。psql プログラムはバックスラッシュ"\"文字で始まる エスケープコードに答えることができます。例えば、 Postgresの様々なSQL コマンドのヘルプは、下記のコマンドを実行すると表示されます。

mydb=> \h
     

問い合わせがワークスペースに入力できたら、 下記のコマンドを実行してワークスペースの内容を Postgresサーバに引き渡すことができます。

mydb=> \g
     
これは、サーバに問い合わせを実行するように指示します。 問い合わせをセミコロンで終了させた場合は、"\g" コマンドを実行する必要はありません。 psqlは、セミコロンで終了している 問い合わせは自動的に実行します。ファイルから問い合わせを読み込む 場合は、対話的にそれらを入力するのではなく、下記のように 入力します。
mydb=> \i fileName
     
psqlを終了させ、Unixに戻るには、 下記のコマンドを実行します。
mydb=> \q
     
psqlは終了し、コマンドシェルに戻ります。 (その他のエスケープコードに関しては、モニタプロンプトで \hを実行して下さい)。スペースやタブ、改行などの 空白はSQL問い合わせ内で自由に使用することができます。 1行のコメントは"--"を使用します。 そのハイフンから行の最後までを無視します。複数行に渡るコメントや 行内の部分的なコメントには"/* ... */"を 使用します。

3.3.3. データベースの削除

データベースの削除はそのデータベースの管理者のみが行えます。 例えば、mydbという名のデータベースの管理者が、 そのデータベースを削除したい場合には、下記のコマンドを 入力して削除することができます。

% dropdb mydb
     
これは、このデータベースと関連のあったすべてのUnixファイルを 物理的に削除してしまいます。したがって、この作業を一度行ったら、 元の状態に戻すことはできませんので、実行する際には細心の 注意を払って下さい。