ウォンツテック

そでやまのーと

posgre用の管理ユーザを作成する。
インストール時に作成したユーザ「pgsql」でログインし、以下を実行

$ createuser
Enter name of user to add: sodex
Shall the new user be allowed to create databases? (y/n) y
CREATE USER

※ここで追加するユーザとはunixユーザを指す

上記で指定したユーザでログインし、データベースを作成する
※ユーザ作成時にdatabase作成権限を「y」にしたユーザのみ可

$ createdb -E EUC_JP database
CREATE DATABASE

※databaseはデータベース名

作成したデータベースはpsqlコマンドを使って操作する

$ psql database

次にテーブルを作成する

database=# create table test (
database(# name varchar(10) not null,
database(# age integer,
database(# address varchar(10));

間違えた場合等は
database(#\r
と入力するとquery bufferがclearされて
database=#
に戻れる
※SQL文は必ず最後に「;」で終了する

database=#\dt
でテーブルを確認

作成したテーブルにデータを挿入

database=# insert into test values (
database(# 'foo baa',
database(# 20,
database(# 'Tokyo Chiyoda-ku');
INSERT 0 1

※例えば、挿入する文字列が多すぎたりしたばあい以下のメッセージが
出力される
ERROR:  value too long for type character varying(30)

作成したテーブルを表示

database=# select * from test
  name   | age |     address
                                                                  • -
foo baa | 20 | Tokyo Chiyoda-ku (1 row)

whereを使う

database=# select * from test;
  name   | age |     address
                                                                  • -
foo baa | 20 | Tokyo Chiyoda-ku nia | 13 | NY mero | 14 | NY のように登録したテーブルで database=# select * from test database=# where age like 13; とやると name | age | address
                                          • -
nia | 13 | NY (1 row) のようにマッチした項目のみが表示される。 また、 database=# select * from test database=# where name like 'm%'; は「%」がワイルドカードとなるため、nameの始めの文字が「m」 のものだけがマッチする name | age | address
                                          • -
mero | 14 | NY (1 row)

データの変更

database=# update test set
database-#  address = 'Tokyo Chuoh-ku'
database-#  where name = 'foo baa';
UPDATE 1
database=# select * from test;
  name   | age |    address
                                                              • -
nia | 13 | NY mero | 14 | NY foo baa | 20 | Tokyo Chuoh-ku (3 rows)

テーブルの削除

database=# \dt
       List of relations
 Schema | Name  | Type  | Owner
                                                              • -
public | meibo | table | sode public | test | table | sode (2 rows) database=# drop table meibo; DROP TABLE

PostgreSQLの基本データ型
データ型 説明
int2 符合付正数(smallint)
int4 符合付正数(numeric)
char(n) 固定長文字列
varchar(n) 可変長文字列
int4 符合付正数(numeric)
date 日付(年月日)
time 時刻(時分秒)
datetime 日付と時刻

PostgreSQL演算子
演算子 説明
+ - * / 四則演算子です
% 乗余り(モジュラ)です
@ 絶対値を求めます(@-5.0 = 5.0)
^ ベキ乗を求めます(2^5 = 32)
; log を求めます((;5.0) = log5)
|/ ルート演算します(|/25.0 = 5)
||/ 3 ルートを求めます(||/27 = 3)
|| 文字列を連結します


selectで正規表現が使用できる

=> select * from table where name ~ '^a';
 name | age | address
                                          • -
nia | 13 | NY (1 row) ※nameの後のチルダ「~」が必要