ホー > 各種ソフトウェア > データベース > 初めてのPostgreSQL日記 >

初めてのPostgreSQL日記 - 3日目

今日は本(廉 升烈「PostgreSQLによるLinuxデータベース構築」翔泳社)を見ながらデータベースの作成といきますか。

もちろん、昨日作成したaho君のアカウントのまま作業続行

$ createdb tester

CREATE DATABASE

と、無事にデータベース作成完了。

 

何々?、PostgreSQLを利用するにはpsql(/usr/bin/pqsl)なるフロントエンド(つまり、ユーザーとコンピュータの間を取り持つもの)アプリケーションを起動していないといけないのか。と納得しつつ、先へ進む

$ psql tester

 

PostgreSQL の会話型ターミナル、psql へようこそ

 

\copyright とタイプすると、配布条件を表示します

\h とタイプすると、SQL コマンドのヘルプを表示します

\? とタイプすると、内部スラッシュコマンドのヘルプを表示します

\g と打つかセミコロンで閉じると、クエリーを実行します

\q で終了します

 

tester=#

おお、これで、psqlが起動し、コマンド待ちの状態になったのか。

もちろん、\qを入れて、すぐにpsqlを終了させる。(^-^)

 

エディタでaho.sqlというファイルを作り、そのファイルに

create table passwd(

        id varchar(8) not null,

        passwd varchar(8) not null,

        primary key(id)

);

と本に書いているまま書いてみる。まぁ、意味する所は、8文字のchar型で空ではないidと、8文字のchar型で空ではないpasswdをもっていて、idが主キーとなる、passwdというテーブルなんだろうねぇ。

 

それで、いま作ったファイルを次のように実行すると、

$ psql tester < ./aho.sql

NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'passwd_pkey' for table 'passwd'

CREATE

と、データベースにテーブルが作成できた模様です。このテーブルに、直接データを入れていく。

$ psql tester

PostgreSQL の会話型ターミナル、psql へようこそ

 

\copyright とタイプすると、配布条件を表示します

\h とタイプすると、SQL コマンドのヘルプを表示します

\? とタイプすると、内部スラッシュコマンドのヘルプを表示します

\g と打つかセミコロンで閉じると、クエリーを実行します

\q で終了します

 

tester=# \dt

      リレーション一覧

  名前  |    型    | 所有者

--------+----------+--------

 passwd | テーブル | kabe

(1 行)

 

tester=#

\dtコマンドは、テーブルのリストを表示すると本に書いてあるものの、新しいバージョンでは、テーブルの状態を表示してる模様。

 

空っぽのままのテーブルではあるけれども、テーブルの内容を参照するにはselect文を利用するらしい、「select 列名 from 条件」。

実際にやってみると、以下の通り、

tester=# select * from passwd;

 id | passwd

----+--------

(0 行)

 

テーブルに実際にデータを入力してみる。

 

tester=# insert into passwd(id,passwd) values ('tester1','tester');

INSERT 16569 1

tester=# insert into passwd(id,passwd) values ('tester2','tester');

INSERT 16570 1

tester=# insert into passwd(id,passwd) values ('tester3','tester');

INSERT 16571 1

tester=# insert into passwd(id,passwd) values ('tester4','tester');

INSERT 16572 1

tester=# insert into passwd(id,passwd) values ('tester5','tester');

INSERT 16573 1

tester=# insert into passwd(id,passwd) values ('tester6','tester');

INSERT 16574 1

tester=# insert into passwd(id,passwd) values ('tester7','tester');

INSERT 16575 1

先ほどのコマンドを利用して確認すると、

tester=# select * from passwd;

   id    | passwd

---------+--------

 tester1 | tester

 tester2 | tester

 tester3 | tester

 tester4 | tester

 tester5 | tester

 tester6 | tester

 tester7 | tester

(7 行)

になる。はぁ、長かった。


 Copyright (C) 2001 Keisuke ABE. All Rights Reserved.