第3回:テーブルを作っていじる(1)


データベースを作る

前準備ができたんで、次はデータベースを作ってみる。
ポスグレにはデータベースをいじる各種コマンドもインストールされてる。 それらを使うにはユーザ postgres になっていじる。
まず、PostgreSQL のデーモン(だと思う) postmaster が起動されてることを確認。
起動されてなかったら起動。postgres になって ps で確認してみる。
postgres$ ps -ax | grep postmaster
 7010 ?        S      0:00 postmaster -S -i
これを見ると、postmaster -S -i で動いてる。
-S オプションはバックグラウンドで動かせるらしい。
-i オプションはネットからの接続を許す。-i がないとローカル内だけのアクセスしかできないんで Web から接続させるには必須オプション。
postmaster を起動・再起動させるには pg_ctl コマンドを使うとうれしい。 詳細は pg_ctl --help を見るべし。
次にデータベースを作る。 mydb という名前のデータベースを作成してみる。
postgres$ createdb mydb
CREATE DATABASE
エラーが無いんでうまくいったらしい。
本当にできたか確認するには psql コマンドを使う。 psql は PostgreSQL に接続するターミナル・クライアント・ソフトらしい。 psql から SQL 文を発行してデータベースをいじる。
現在登録されているデータベース一覧を表示させるには -l オプションを使う。
postgres$ psql -l
  List of databases
   Name    |  Owner
-----------+----------
 mydb      | postgres
 template0 | postgres
 template1 | postgres
(3 rows)
mydb があるね。 他に template0 なんかもある。これは何か不明やけど気にしないことにする。

データベースを削除

作っていきなり消すんかい!!とりあえず実験ということで。
postgres$ dropdb mydb
DROP DATABASE
本当に消えたか確認。
postgres$ psql -l
  List of databases
   Name    |  Owner
-----------+----------
 template0 | postgres
 template1 | postgres
(2 rows)
ちゃんと消えとるね。

テーブルを作る

psql を使って mydb データベースに接続する。
消したんでもう一回 mydb を作って psql で接続。
postgres$ createdb mydb
CREATE DATABASE
postgres$ psql mydb
Welcome to psql, the PostgreSQL interactive terminal.

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

mydb=#
ここからは psql ターミナルでの作業となる。
まずは、名前と電話番号とメールがある住所録テーブルでも作ってみる。 以下の SQL 文を入力。
mydb=# CREATE TABLE address (name varchar(50), tel varchar(50), email varchar(50));
んでちゃんとできたか確認。
mydb=# \d address
              Table "address"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 name   | character varying(50) |
 tel    | character varying(50) |
 email  | character varying(50) |
うまくいったようや。

テーブルを削除

作っていきなり消すんかい!!とりあえず実験ということで。
mydb=# DROP TABLE address;
消されたかどうか確認。
mydb=# \d address
Did not find any relation named "address".
ねえぞ。って言ってきたんでうまくいった。今回はこれでおしまい。
mydb=# \q
('02.11.21)

Back