5 クライアントアプリケーション(解説)
Completion requirements
この章では、PostgreSQLのクライアントアプリケーションとそれらに関連するSQL文について解説します。
5.1 対話型ターミナル
5.2 ユーザの管理
5.3 データベースの作成
5.4 データベースのバックアップ
5.5 バキューム処理
5.3 データベースの作成
PostgreSQLのサーバには、以下の3つのデータベースがインストール時に作成されています。
- postgres --- サーバ接続用のデフォルトのデータベース
- template1 --- 新しいデータベースを作成する際のテンプレートになるカスタマイズが可能なデータベース
- template0 --- template1と同じ。ただし、システム標準の設定のみが含まれており、ユーザによる変更不可
新しいデータベースを作成することにより、複数のデータベースを同時に利用できます。ただし、クライアントはデータベースごとに接続する必要があります。このページでは、データベースの作成・削除を行うクライアントアプリケーションとSQL文について説明します。
createdbコマンド
createdbは、新しいデータベースを作成します。形式は以下の通りです。
creaatedb [オプション] [データベース名]
- データベース名は、作成するデータベースの名前です。省略時は、接続しているユーザ名になります。
- オプションは、サーバへの接続情報と作成するデータベースに関するオプションです。主なものを以下に示すます。
オプション | 省略値 | 説明 |
---|---|---|
--host= (-h) | Unixドメインソケット | サーバを実行しているマシンのホスト名 またはUnixドメインソケットのディレクトリ |
--port= (-p) | 5432 | サーバが接続監視を行っているTCPポート |
--username= (-U) | OSのユーザ名 | 接続するユーザの名前 |
--owner= (-O) | コマンドを実行したユーザ名 | 新しいデータベースの所有者となるユーザ名 |
--encoding= (-E) | UTF-8 | データベース内で使用する文字コード |
--locale= (-l) | データベース内で使用するロケール | |
--template (-T) | template1 | データベース作成に使用するテンプレートデータベース |
--version (-V) | createdbのバージョンを表示して終了 | |
--help (-?) | createdbに関するヘルプを表示して終了 |
例えば、postgresユーザで接続してnewdbデータベースを作成する場合は、以下のように指定します。
createdb -U postgres -O sato newdb
作成したnewdbデータベースの所有者は、satoになります。
CREATE DATABASE文
CREATE DATABASE文は、createdbコマンドと同じ機能を持つSQL文です。形式は以下の通りです。
CREATE DATABASE データベース名 [WITH オプション [...]]
- データベース名は、作成するデータベースの名前です。
- オプションは、作成するデータベースに関するオプションで、複数指定できます。主なものを以下に示すます。
OWNER[=] 所有者のユーザ名
ENCODING[=] 文字コード
LOCALE[=] ロケール
TEMPLATE[=] テンプレートデータベース
以下は、newdbデータベースを作成するCREATE DATABASE文です。
CREATE DATABASE newdb OWNER sato;
dropdbコマンド
dropdbは、既存のデータベースを削除します。削除できるのは、データベースの所有者かスーパーユーザです。形式は以下の通りです。
dropdb [オプション] データベース名
- データベース名は、削除するデータベースの名前です。
- オプションは、サーバへの接続情報とそれ以外のオプションです。主なものを以下に示すます。
オプション | 省略値 | 説明 |
---|---|---|
--host= (-h) | Unixドメインソケット | サーバを実行しているマシンのホスト名 またはUnixドメインソケットのディレクトリ |
--port= (-p) | 5432 | サーバが接続監視を行っているTCPポート |
--username= (-U) | OSのユーザ名 | 接続するユーザの名前 |
--interactive (-i) | 削除を行う前に確認のためのプロンプトを表示 | |
--if-exists | 指定したデータベースが存在しない場合でもエラーとしない | |
--version (-V) | dropdbのバージョンを表示して終了 | |
--help (-?) | dropdbに関するヘルプを表示して終了 |
例えば、newdbデータベースを確認の上削除する場合は、以下のように指定します。
dropdb -U postgres -i newdb
DROP DATABASE文
DROP DATABASE文は、dropdbコマンドと同じ機能を持つSQL文です。形式は以下の通りです。
DROP DATABASE [IF EXISTS] データベース名
- データベース名は、削除するデータベースの名前です。
以下は、newdbデータベースが存在すれば、それを削除するDROP DATABASE文です。
DROP DATABASE IF EXISTS newdb;