PostgreSQL で献血データベースを作ろう

テーブルを作る

さてさて, これをテーブル (表) にします. ここから SQL の始まりです.

あれだけ膨大なデータだと, データベースのプロなら, 複数のテーブルに 分割したくなるでしょう. でも私は素人ですし, データベースの利用者も私だ けで負荷も軽いので, 1 つのテーブルにしてしまいます.

まず初めに, データベースを作ります. データベース名は bd (blood donation ね) とします. もちろん, postmaster を裏で起動させておく必要があります.

$ postmaster -i -S
$ createdb bd

次に, bd_rec.sql を使って, bd_rec (blood donation record のつもり) というテーブルを作ります. bd_rec.sql 内のデータは, に説明した通り. データ型も, 一応確認して下さい. float にしたデータの中には, 実際には int で間に合うものもあります. でも面倒 (^^; なので, 一律 float にしてしま いました.

$ psql bd < bd_rec.sql

確認してみますね.

$ psql bd
Welcome to the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL

   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: bd

bd=> \d

Database    = bd
 +------------------+----------------------------------+----------+
 |  Owner           |             Relation             |   Type   |
 +------------------+----------------------------------+----------+
 | msato            | bd_rec                           | table    |
 +------------------+----------------------------------+----------+

bd=> \d bd_rec

Table    = bd_rec
+----------------------------------+----------------------------------+-------+
|              Field               |              Type                | Length|
+----------------------------------+----------------------------------+-------+
| number                           | int4                             |     4 |
| realnum                          | int4                             |     4 |
| when                             | date                             |     4 |
| type                             | text                             |   var |
| room                             | text                             |   var |
| pref                             | text                             |   var |
| center                           | text                             |   var |
| alt                              | float8                           |     8 |
| ast                              | float8                           |     8 |
| ggtp                             | float8                           |     8 |
| tp                               | float8                           |     8 |
| alb                              | float8                           |     8 |
| ag                               | float8                           |     8 |
| chol                             | float8                           |     8 |
| rbc                              | float8                           |     8 |
| hb                               | float8                           |     8 |
| ht                               | float8                           |     8 |
| mcv                              | float8                           |     8 |
| mch                              | float8                           |     8 |
| mchc                             | float8                           |     8 |
| wbc                              | float8                           |     8 |
| plt                              | float8                           |     8 |
| prsh                             | float8                           |     8 |
| prsl                             | float8                           |     8 |
+----------------------------------+----------------------------------+-------+

bd=> \q


[うさぎ印] おたより, お待ちしています

m@sa.to