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コマンドの一覧を表示する |
| \h | SQLコマンドの一覧を表示する |
| \h SQLコマンド名 | SQLコマンドの使い方を表示する |
| \l | データベースの一覧を表示する |
| \dt | 表の一覧を表示する |
| \d 表名 | 表の項目一覧を表示する |
| \dT | 項目の型の一覧を表示する |
| \dS | システム表の一覧を表示する |
| \copy table {from | to} ファイル名 | 表をファイルにコピーする |
| \i ファイル名 | 指定したファイル内のSQLを実行する |
| \! OSコマンド | OSのコマンドを実行する |
| \q | psqlを終了する |
最終更新 2010-03-02

この記事へのコメント
まだコメントは投稿されていません。