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 the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL

   type \? for help on slash commands
   type \q to quit
   type \g or terminate with semicolon to execute query
 You are currently connected to the database: template1

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ファイルを 物理的に削除してしまいます。したがって、この作業を一度行ったら、 元の状態に戻すことはできませんので、実行する際には細心の 注意を払って下さい。