PostgreSQL導入のメモ、以前

2005/6/13 [17:34:50] (月) 天気

体力をガツンと奪われる感じの蒸し暑さがいきなり昨日今日。最寄の職安にいったら、満員御礼で番号札を渡されての順番待ち12人で驚いた。ハロープラザというハローワークの縮小版のようなところなので端末の数も少ないししかたないかも知れない。で、今日は週末にハローワークインターネット版で検索して見つけておいたところに紹介状を書いてもらって履歴書などを送ってみた。

予想外の混雑だったので、帰りつくまで昼飯が我慢できず、駅近くのマクドに入った。100円モノを3品。うううむ、味とか栄養とかはともかく、この値段はいいな。喉が乾いて自動販売機で缶モノを買っても100円以上するのだ。マクドで飲み物だけ100円で涼んで休めるんだから全然OKですよ。最近、マクドって混んでるな、と思ってたけど、これがあるから子供からお年寄りまでにぎわってんだなぁ。


で、帰ってから昨日あたりの続き。

PostgreSQL の導入に検索しまくり。SELECT の中に WHERE 以下に条件式を書けば指定フィールドで検索ができるというのがわかって、ちょっと見えてきた、かも。

これって PostgreSQLうんぬんじゃなくSQL文の基本の基本らしい。PostgreSQL の解説じゃなくて SQL の解説をまず漁るべきだったかもしれん。

入力されたものに応じて条件式の文字列を作って問い合わせ窓口に放りこめばいい。


てことで、ちょっとPostgreSQLメモ。


FreeBSD-4.11stable の port で

postgresql-7.4.6

php5-pgsql-5.0.3_1

mod_php5-5.0.3_1,1

をインストール。

postgresqlインストール後、


$ su -l pgsql -c initdb


これでどうやらスーパーユーザーpgsqlでデータベースができるようだ。というか、PostgreSQLが使えるようになる、のかな。


[23:19:34]

次に、データベースのスーパーユーザーで、データベースの新規ユーザーを登録して

# su - pgsql

$ createuser new

(このデータベースの新規ユーザーは普段ログインしているアカウントのユーザー)


でもって作ったユーザーで(loginするなり suするなりして)データベースを作る

$ createdb --encoding=EUC_JP books

スーパーユーザーだけでもいいかも知れないけど、スーパーユーザーだと取り返しのつかない出来事が起こるし、いちいちsuするのも面倒だし、普段ログインしているアカウントで気楽に。


以上の作業で

$ psql books

とやってデータベースを操作できるようになる。(データベース名とテーブル名が同じってのはどうなのかしらん)


そしたらば、データベース内にテーブルを作成

↓psql のプロンプト

books=> CREATE TABLE books (id serial primary key,

title text

.....


次にデータベースのスーパーユーザーで、psql を使って csv ファイルからテーブルに一気にコピーする。

books=# copy books(id,title....

from ’/tmp/books.csv’

デフォルトではフィールド区切りがタブらしいので、コンマをタブに置換してある。

id はデータベースの管理なのでデータ側には通し番号のidは不要。


…この、ユーザーとデータベースとテーブルの関係が、実はまだよく把握できてない。普段ログインするのはまた別になってるのが面倒くさい。


以上でインストールと最初の設定は終わり。httpd.confのそれっぽいところを書き換えてapacheを再起動すればCGIで使えるようになる。

後でもう少し具体的に書いておかないと…これじゃ大雑把すぎて備忘録になってないなぁ。


ちなみに、zaurus 版の postgresqlインストールに関してはこちらの通りにやれば問題なし。


ブラウザを通じて httpd からデータベースをいじるためにデータベースに apache のユーザーを登録して、アクセス許可をしておく必要がある。


$ createuser www


$psql -c ’GRANT ALL ON books TO www’ books

$psql -c ’GRANT ALL ON books_id_seq TO www’ books


phpの検索部分


名前が司馬遼太郎のデータを引っ張り出す。


$que = "SELECT * FROM books WHERE name ~ ’司馬遼太郎’";


$con = pg_connect("dbname=books");

$res = pg_query($con, $que);

$cnt = pg_num_rows($res);

for($i=0; $i < $cnt; $i++){

....

}


perl の方が使い慣れていていいんだけど、どうやら世の中の趨勢は、WEBでは php+データベース っぽい。こういうものって、長いものに巻かれて大樹に寄った方がなにかとラクなんでちょっと php で四苦八苦しておこうかしらん。


[22:08:11]

んで、本にネットに、パラパラ見ながら、php のスクリプトを書いてみた。…って、入力フォームもデータ送受信も仕組みは同じで、使う言葉も違うことは違うけどperlと似たところも多い。

なので、「当たらずしも遠からじ」でテキトーに書いていって、ブラウザのエラーを見ながら修正というやりかた。インタプリタの手軽なところだ。とりあえずは、なんの機能もない、ただフィールドごとでの検索をするだけのスクリプト。うううむ。postgresql へデータを渡してそれを受けとって、とかやってるのに、気のせいか速いぞ。


SQLの絵本: デ-タベ-スがみるみるわかる9つの扉

『SQLの絵本: デ-タベ-スがみるみるわかる9つの扉』

アンク

<<2026/1>>
    123
45678910
11121314151617
18192021222324
25262728293031
検索:

【最近の20件】