psqlでのデータベース管理

psqlでのデータベース操作

psqlというPostgreSQL付属のコマンドラインプログラムを利用して、データベースを管理することができます。

[postgres] psql    ※引数に接続するデータベース名を指定する。省略すると postgres が使用される

[postgres] psql testdb    ※testdb という名前のデータベースを使用する場合

[postgres] psql -U user1 testdb    ※user1 というユーザでログインして、testdb という名前のデータベースを使用する場合

\lコマンドでデータベースの一覧を表示することができます。

DBname=> \l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8
(3 rows)

デフォルトでは postgres, template0, template1 の3つのデータベースが存在しています。それぞれ、下記のような意味があるようです。

初期化が終わると、データベースクラスタにはpostgresという名前のデータベースが含まれています。このデータベースは、ユーティリティやユーザ、サードパーティ製アプリケーションのデフォルトデータベースとして用意されています。データベースサーバ自身はこのpostgresデータベースの存在を必要としていません。初期化中に他にもtemplate1というデータベースが各クラスタ内に作成されます。その名前から推測できるように、これはその後に作成されるデータベースのテンプレートとして使われます。

ユーザの管理

ユーザを作成する場合は下記コマンドを実行します。

postgres=# create user ユーザ名 [with password 'パスワード'];
CREATE ROLE

ユーザを削除する場合は下記コマンドを実行します。

postgres=# drop user ユーザ名;
DROP ROLE

既存のユーザの一覧を表示するには下記のコマンドを実行します。

postgres=# select usename from pg_user;
 usename
----------
 postgres
(1 row)

psqlメタコマンド

\lや\qなどの接頭辞にバックスラッシュがついたものは psql 自身によって実行される、 psql のメタコマンドです。
下表は主なpsqlメタコマンドです。

コマンド機能
\?psqlコマンドの一覧を表示する
\hSQLコマンドの一覧を表示する
\h SQLコマンド名SQLコマンドの使い方を表示する
\lデータベースの一覧を表示する
\dt表の一覧を表示する
\d 表名表の項目一覧を表示する
\dT項目の型の一覧を表示する
\dSシステム表の一覧を表示する
\copy table {from | to} ファイル名表をファイルにコピーする
\i ファイル名指定したファイル内のSQLを実行する
\! OSコマンドOSのコマンドを実行する
\qpsqlを終了する

最終更新 2010-03-02

この記事へのコメント

まだコメントは投稿されていません。

カテゴリー

その他



スポンサードリンク