データベースの作成

PostgreSQLでのデータベースの作成方法を紹介する。
データベースに関する操作は、rootではなく、PostgreSQL管理ユーザ (Red Hat Linux 6.1ではpostgresユーザが管理ユーザとして作成済み)で行う。
postgresユーザまたは、データベース作成権限を持つユーザでログインしよう。

  1. データベースの作成

    テーブルなどを格納するデータベースを作成する。例えばSampleDBという データベースを作成したい場合、次のように行う。

    # createdb SampleDB

  2. テーブル作成準備

    テーブルの作成にはcreate tableというSQLの命令を使用する。

    create table yubin_tab
    {
      new_zip char(7),
      old_zip char(5),
      address_1 varchar(128),
      address_2 varchar(128),
      address_3 varchar(128)
    };

    しかし、これを入力するのは手間がかかるだけでなく、入力ミスをするかも しれない。よって、postgresユーザのホームディレクトリに 「yubin_tab.create」というファイルを作成し、このファイルを元に テーブルを作成する。

  3. テーブルの作成

    yubin_tab.create」ファイルを作成したら、テーブルの作成を行う。 作成したデータベースに対して処理を行うにはSQL言語を使用する。PostgreSQLや Oracleの場合、データベースに対してSQL要求を伝えるクライアントアプリケーション が必要である。PostgreSQLには対話型のクライアントアプリケーションとしてpsql というユーティリティが用意されている。このソフトを使い、テーブルを作成する。

    1. データベースに接続

      psqlを起動し、データベースSampleDBに接続する。

      # psql SampleDB

      psqlが起動すると、次のようなWelcomeメッセージが表示され、 プロンプトからSQLステートメントやpsqlコマンドを実行できるようになる。

      Welcome to the POSTGRESQL interactive sql monitor:
        Please read the file COPYRIGHT for copyright terms of POSTGRESQL
      [PostgreSQL 6.5.2 on i686-pc-linux-gnu, compiled by gcc egcs-2.91.66]
      
          type \? for help on slash commands
          type \q to quit
          type \g or terminate with semicolon to execute query
       You are currently connected to the database: yubin
      
       SampleDB=>
      
    2. create tableコマンドの実行

      プロンプトから直接create tableコマンドを実行してもいいが、用意したファイル をプロンプトから実行するには次のように行う。

      SampleDB=> \i yubin_tab.create

      テーブルが作成されたかどうか、確認する。

      SampleDB=>\dt
      Database    = SampleDB
       +------------------+----------------------------------+----------+
       |  Owner           |             Relation             |   Type   |
       +------------------+----------------------------------+----------+
       |  postgres        |  yubin_tab                       |  table   |
       +------------------+----------------------------------+----------+
      
      SampleDB=>
      

      これにより、データベースyubinにはyubin_tabテーブルがあり、 Ownerpostgresユーザであることが分かる。

    3. データの挿入

      テーブルへのデータの挿入はInsert文を使用する。ここでは紹介しない。
      参考書ではデータがCDに用意してあり、Copyコマンドを使ってデータを 追加した。

    4. データの検索

      データを追加したら、Select文で挿入されているかを確認する。ここでは紹介 しない。

    5. psqlの終了

      psqlを終了するには、\qを使用する。

      SampleDB=> \q
      #

      psqlが終了し、プロンプトが元に戻る。

これで、データベースが使えるようになった。しかし、このままではWeb上でデータベースのデータを表示したり、 AccessなどでODBCを使って操作することはできない。
それらの設定は別ページで解説する。

補足

日本語の取り扱い
テーブル内のデータは日本語が使えたが、テーブル名や項目名にも使えるかどうかは まだ試していない。項目名には使えてテーブル名には使えないような気がする・・・
と思っていたら、テーブル名だろうが項目名だろうが、全く問題なく 日本語が使えました。EUCコードで記述さえすればOK!
とはいえ、テーブル名や項目名は日本語を使わないのがセオリーでしょう。

「psql」ユーティリティの使い方
データベースへの操作はpsqlユーティリティを使うが、サーバ上で直接使うには 日本語を扱う場合に結構面倒である。
これはクライアントからtelnetで接続して操作するのが一番やりやすいと思う。 クライアントからIMEで入力するのが手っ取り早い!!