FreeBSD 11.2 RELEASE - postgreSQL - データベースの作成

 
1. postgres ユーザについて
2. ロールの作成
3. データベースの作成
4. クライアントアプリケーション

1. postgres ユーザについて

 PostgreSQL をインストールすると PostgreSQL ユーザが作成されます。  バージョン 9.5 以前と 9.6 以降ではIDやユーザ名が変わっているので注意が必要です。
バージョン ユーザ・グループ名 ID
9.5 まで pgsql 70
9.6 から postgres 770

2. ロールの作成

 PostgreSQL には「ロール」という概念があります。  「ユーザ」という概念とほぼ同等のものと思って間違いありません。(create role SQL コマンドのラッパが createuser コマンドですから)  Oracle でいうところのスキーマに相当?  ログインユーザ名とロール名が一致するとき、ユーザの権限はロールの権限と同等になります。  ロールの作成は postgreSQL を起動した上で  postgres ユーザで行います。  postgres ユーザになるには root ユーザで

su postgres
 postgres になったところで

$ createuser [オプション] ロール名
 主なオプションに以下のものがあります。
オプション 意 味
-dロールにデータベースの作成権限を与える
-rロールにロールを作成する権限を与える
-sロールに pgsql ユーザと同等の権限を与える

 一度登録したロールを削除するには、以下のようにします。


$ dropuser ロール名

3. データベースの作成

 データベースを作成するには、postgres ユーザ権限を持つユーザで createdb コマンドを使います。

$ createdb データベース名
 データベース名を省略した場合には、ロール(ユーザ)名と同じデータベース名がデフォルト値になります。  データベースを消去するには、dropdb コマンドを使います。

$ dropdb データベース名
 dropdb コマンドは、postgres ユーザか、そのデータベースを作成したロールだけが実行できます。

4. クライアントアプリケーション

 前項までで、データベースの作成は終了です。後は SQL コマンドを御存知であればテーブルの生成、削除、レコードの追加・参照・更新・削除を行えるはずです。  インタラクティブな環境でデータベースを操作するには psql というクライアントアプリケーションを使用します。Oracle を使用したことのある方であれば PostgreSQL における psql とは Oracle における SQL Plus のようなものであると理解してください。

> psql データベース名
 で起動します。起動後は、プロンプトが

データベース名=#
 となります。ここで SQL 文をタイプすることによってデータベースを操作できます。  ターミナルによっては psql 上でコマンドヒストリや行編集の機能が使えます。  psql から抜けるときは

データベース名=# \q
 もしくは [Ctrl-D] を入力します。  一連の SQL 文をテキストファイルに書き込んで、一気に操作することもできます。その場合は、

> psql -f ファイル名 -d データベース名
 と入力します。