Windows2000環境でのCygwin+AN HTTPD+PHP+PostgreSQL

−インストール編−

第2章 PostgreSQLによるテストデータベースの作成

2.2 テストデータベースの作成

データベースの作成

以下は、PostgreSQLの管理ユーザpostgresの権限で実行します。postmasterをあらかじめ起動しておきます。

db_test01というデータベースを作成します。次のcreatedbコマンドをcygwinコマンドラインで実行します。

$ create db_test01

対話型インタフェースpsqlの起動

cygwinコマンドラインからテーブルを作成したり、データを入力するためには、psqlコマンドを使用します。

$ psql db_test01

対話型インタフェースpsqlが起動します。以下対話型インタフェースのコマンドあるいはSQL文をコマンドラインに入力します。

対話型インタフェースpsqlを終了するためには、\qコマンドを実行します。

たとえば、以下のようになります。

postgres@TY0109 ~
$ createdb db_test01
CREATE DATABASE

postgres@TY0109 ~
$ psql db_test01
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

db_test01=#
db_test01=# \q

postgres@TY0109
$

テーブルの作成

テーブルを作成するSQL文は次のようになります。SQL文の最後は必ず";"(セミコロン)をつけます。

# create tablel テーブル名(カラム名 データ型,カラム名 データ型,・・・・);

たとえば、テーブル名がtbl_testでカラムが、

  • id   整数
  • name テキスト
  • tel   テキスト

の場合は、以下のようなSQL文となります。

db_test01=# create table tbl_test (id int, name text, tel text);
CREATE
db_test01=#

正常にテーブルが作成されると"CREATE"と表示されます。

テーブルの表示

テーブルのすべてのカラムを表示するSQL文は次のようになります。

# select * from テーブル名;

"*"はワイルドカードと呼ばれ、「すべてのカラム」という意味をあらわします。

先に作成したtbl_testのすべてのカラムを表示する場合は、以下のように入力します。

db_test01=# select * from tbl_test;
id | name | tel
----+------+-----
(0 rows)

db_test01=#

tbl_testテーブルにはまだデータが入力されていないのでロウの数は0です。

データの入力

テーブルにデータを入力するには、次のSQL文を使います。なお、値が文字列型の場合は値の両端をシングルクォーテーション(')でくくります。

# insert into テーブル名 (カラム名1,カラム名2,・・・) values (値1, 値2, ・・・);

先に作成したtbl_testにデータを入力する場合は次のようになります。

db_test01=# insert into tbl_test (id,name,tel) values (100,'yamada','1111');
INSERT 16562 1
db_test01=#

再度、テーブルtbl_testの内容を表示してみます。入力したデータが追加されているのがわかります。

db_test01=# select * from tbl_test;
id | name | tel
-----+--------+------
100 | yamada | 1111
(1 row)

db_test01=#

ユーザの追加

PostgreSQLでは、テーブルごとにアクセスできるユーザを設定する必要があります。既定では、テーブルの作成者のみがアクセス可能です。そこで、Webアプリケーションでブラウザ経由でアクセスするユーザを追加することにします。ユーザ名は任意ですが、ここではwebdbとします。ユーザの追加はpsqlコマンドラインで以下のcreateコマンドを使います。

# create user ユーザ名;

その後、テーブルごとに各ユーザの権限を追加していきます。ユーザ権限の追加はpsqlコマンドラインでgrantコマンドを使います。

# grant 権限の種類 on テーブル名 to 対象ユーザ名;

権限の種類には、select(選択)、insert(追加)、 update(更新)、 delete(削除)などがあります。 allを指定するとこれらすべての権限を与えることになります。

上記のテーブルtbl_testに対し、ユーザwebdbにすべての権限を与えるには以下のようにします。

b_test01=# create user webdb;
CREATE USER
db_test01=# grant all on tbl_test to webdb;
GRANT
db_test01=#

【参考サイト】


前へ | 目次へ | 次へ | YCポータルサイト

執筆 山田豊通
更新日:2002年12月12日