この時点でPostgresは正常に稼働していると 仮定し、ここからは実際にデータベースを作成し、データベースを 管理する時の基本的なコマンドを紹介します。
ほとんどのPostgresアプリケーションは、 データベース名が特に指定されてなければ、コンピュータの アカウント名と同じものをデータベース名とします。
データベース管理者が、あなたのアカウントにデータベース作成権限を与 えていない場合、あなたは管理者から使用する(既に存在する)データベー ス名を教えてもらっているはずです。この場合、データベースの作成/削 除のセクションは読み飛ばして下さい。
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が 拒否した場合は、サイト管理者から、データベースを作成できる 権限を与えてもらって下さい。この場合は、サイト管理者に 問い合わせて下さい。
データベースを作成できたら、下記の方法でそのデータベースと 接続します。
Postgresターミナルモニタプログラム (psqlなど)を起動させ、 SQLコマンドを使って対話的に入力、編集、実行する。
pgaccessや (ODBCを使った)ApplixWare などの、既存ツールを使用してデータベースを作成/操作する。
perlやtclのような、Postgresで サポートされているインタフェース言語を使用する。これらの 言語の中には便利で、強力なGUIツールキットが用意されているものも あり、カスタムアプリケーションを作成するのを補助するものが あります。例えば、上で説明したpgaccessは tk/tclで書かれたアプリケーションツールの実例です。
LIBPQのサブルーチンライブラリを使用してC言語 プログラムを書く。この方法は、C言語から SQLコマンドを発行し、結果とステータス メッセージをプログラムに返します。このインタフェースは プログラマーズガイド(The PostgreSQL Programmer's Guide) で詳しく書かれています。
% 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 fileNamepsqlを終了させ、Unixに戻るには、 下記のコマンドを実行します。
mydb=> \qpsqlは終了し、コマンドシェルに戻ります。 (その他のエスケープコードに関しては、モニタプロンプトで \hを実行して下さい)。スペースやタブ、改行などの 空白はSQL問い合わせ内で自由に使用することができます。 1行のコメントは"--"を使用します。 そのハイフンから行の最後までを無視します。複数行に渡るコメントや 行内の部分的なコメントには"/* ... */"を 使用します。
データベースの削除はそのデータベースの管理者のみが行えます。 例えば、mydbという名のデータベースの管理者が、 そのデータベースを削除したい場合には、下記のコマンドを 入力して削除することができます。
% dropdb mydbこれは、このデータベースと関連のあったすべてのUnixファイルを 物理的に削除してしまいます。したがって、この作業を一度行ったら、 元の状態に戻すことはできませんので、実行する際には細心の 注意を払って下さい。