特集 オープンソースで作るJava+DB
第1回 PostgreSQLで学ぶSQLデータベースの操作 (3/15)
データベースを作成する
PostgreSQLに限らず、リレーショナルデータベースの構成は、データベースを作り、そのなかに各種テーブルを構成していく形式になる。postgresqlスクリプトを初回に起動したときに作成されるのは、データベース全体の保存域だ。データベースを利用する場合には、その保存域を区切り、各種データベースを作成する方式となる(Fig.1)。
Fig.1 データベースの構成
PostgreSQLは、postgresユーザー/グループの権限で動作している。そのため、PostgreSQLに対する操作は、次のようにpostgresユーザーにログインしてから行うことを忘れてはならない。
# su - postgres
さて、データベースを実際に作成するには、createdbコマンドを使う。createdbコマンドを使ってデータベースを作成するときには、「-E」オプションで保存するデータのエンコード方式を指定する。例えば、「-E EUC_JP」とするとEUCコードで、「-E UNICODE」とするとUnicodeで、それぞれ保存されるようになる。
文字コードとして何を選択するのかは難しい問題だ。一般にUnixではEUCが利用されるから、EUCを使ったほうが有利だ。しかしこれは、データベースを利用するアプリケーションにもよる。たとえば、JavaからPostgreSQLにアクセスする場合には、Javaが文字列をUnicodeとして扱っているため、Unicodeとして構成したデータベースでないと、正しくデータを保存できない。
今回は、JavaからPostgreSQLを使うことを主目的とするので、Unicodeとしてデータベースを作成することにしよう。ここでは、次のようにcreatedbコマンドを実行する。
$ createdb -E UNICODE sampledb
すると画面に「CREATE DATABASE」と表示され、sampledbデータベースが完成する。
CREATE DATABASE
One Point!
- createdbコマンドの代わりに、すぐのちに説明するpsqlコマンドを使って、CREATE DATABASE文を実行することでもデータベースを作成できる。
- 既存のデータベースを削除するには、dropdbコマンド(またはDROP DATABASE文)を使う。
コラム:Unicodeを使う場合のコマンドラインからの操作
データベースの文字コードをUnicodeとする場合、問題となるのが、コマンドラインからの操作だ。次に説明するように、データベースの操作には、psqlコマンドを使う。psqlコマンドを使うと、レコードを表示したり、追加したり、更新したりできる。
この時、Unicodeに対応しない端末からpsqlコマンドを使うと、文字化けが起こってしまう。Unicodeに対応する方法は幾つかあるが、Unicodeに対応したターミナルソフトを使ってLinuxに接続して利用するのが比較的簡単な解決方法だ。
たとえば、Unicodeに対応したWindows用のフリーのターミナルソフトとしては、PuTTYがある。
前のページ | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 次のページ
[大澤文孝,ITmedia]