PostgreSQL 8.1.3 Win32 のインストール
〜 Windows でも本格 RDB 〜
2006-04-27 作成 福島

・Windows 版 PostgreSQL をダウンロード&インストール

PostgreSQLダウンロードページ から postgresql-8.1.3-1-ja.zip をダウンロードし、解凍。
解凍されたインストーラ (postgresql-8.1-ja.msi) を実行。

を押して画面を進めます。
ひとつの画面に出来そうなのに、面倒な構成になっています。
インストールオプションの選択
色々選べますが、今回は全て変更なしにします。

デーモン用アカウントの作成
デーモン用のアカウントなのでパスワードは適当 (空欄) にします。
パスワードを空欄にしておくと自動生成してくれます。
ここでのパスワードを後で手入力するようなことはありません。
ユーザ postgres の設定
ここで記入するパスワードは、あとで頻繁に使うことになるので重要です。---(A)
ここで言う手続き言語とはストアドプロシージャのことです。
デフォルトでは PL/pgsql だけを選択できます。
貢献モジュールとは変な言い回しですが、コントリビュートされたモジュールのことですね。
を押すとインストールが始まります。
を押して PostgreSQL のインストールは終了です。
コマンドプロンプトから psql を実行
■コマンド プロンプト - psql 
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>"C:\Program Files\PostgreSQL\8.1\bin\psql.exe" -h localhost -p 5432 postgres "postgres"
Password for user postgres: ********         --- 上記 (A) で記入したパスワードを入力します
Welcome to psql 8.1.3, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

postgres=# \q

C:\Documents and Settings\Administrator>

・Python から PostgreSQL を使ってみる (pgdb が無いので pyPgSQL を使います)
 pyPgSQL も DB-API 2.0 準拠なので pgdb と同様に使えます

Python 2.4 を使います。まだ入ってなければ入れておいてください。

mx をインストール
eGenix.commx Extensions for Python から egenix-mx-base-2.0.6.win32-py2.4.exe をダウンロードし、インストール
(※ほとんど何もしません。を押して行くだけで終了します。)




pyPgSQL をインストール
pyPgSQLdownload files から pyPgSQL-pre2.5-20050926.win32-py2.4.exe をダウンロードし、インストール
(※ほとんど何もしません。を押して行くだけで終了します。)




pyPgSQL が入ったので Python から操作
■コマンド プロンプト - python 
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>python
Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import pyPgSQL.PgSQL
>>> db = pyPgSQL.PgSQL.connect("localhost:5432:DBName:UserName:Password")
>>> db.version
PostgreSQL 8.1.3 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.4 (mingw special)
>>> cursor = db.cursor()
>>> cursor.execute("CREATE TABLE table1 (name TEXT, val INTEGER)")
>>> cursor.execute("INSERT INTO table1 (name,val) VALUES ('apple','100')")
>>> cursor.execute("INSERT INTO table1 (name,val) VALUES ('orange','150')")
>>> db.commit()
>>> cursor.execute("SELECT * FROM table1")
>>> result = cursor.fetchone()
>>> result
['apple', 100]
>>> result = cursor.fetchone()
>>> result
['orange', 150]
>>> result = cursor.fetchone()
>>> result        --- データがもう無いので何も表示されない
>>> db.close()
C:\Documents and Settings\Administrator>