PostgreSQL は、複数のデータベースを持つことができます。また、各データベースはその中に複数のテーブルを持つことができます。同じデータベース内では、テーブル同士のアクセスができますが、データベースを跨いだアクセスはできません。
データベースの作成
データベースの作成には、createdb 権限をもつ postgreSQL のロールが必要です。エンコードオプションを指定しない場合、デフォルトのエンコード(下の例では UTF8 → もしかしたらシステムのエンコード)になるようです。
データベースの作成
以下のコマンドは、psql でなにかしらのデータベースに接続した状態で実行します。
postgres=> CREATE DATABASE sampledb; CREATE DATABASE
データベースを一覧で表示
作成したデータベースを確認するときなど。
postgres=> l
テーブルの作成
テーブルの作成
テーブルを作成するデータベースに接続してコマンドを実行します。書式は以下の通り
create table テーブル名(列名 データ型, 列名 データ型);
sampledb=> create table test(num int, name varchar(50)); CREATE TABLE
主キーを設定してテーブルを作成
列名 データ型 につづけて primary key を追加します。
test-> create table test test-> (num int primary key, name varchar(50));
自動採番する列を作成
自動採番する列を含むテーブルを作成するには、自動採番したい列のデータ型を serial に設定します。
test-> create table test test-> (num serial, name varchar(50));
デフォルト値を設定
デフォルト値を設定すると、レコードの該当列に値を入れなくてもデフォルト値が自動的に入ります。書式は以下のとおりです。
create table テーブル名 (列名 データ型 default デフォルト値, 列名 データ型);
test-> create table test test-> (num int, name varchar(50) default 'ナメック星人');
その他オプション
主キーの設定と同じように、データ型につづけてオプションを追記します。
| オプション | 説明 |
| not null | NULL (値なし)が許可されない制約 |
| unique | 値の重複が許可されない制約 |
作成したテーブルの確認
テーブルの一覧を表示
test=> \d
テーブル内の列情報を表示する方法。unique などの各種制約オプションも表示されます。
test=> \d users
Table "public.users"
Column | Type | Modifiers
---------+-----------------------+-----------------------------------------------------
num | integer | not null default nextval('users_num_seq'::regclass)
id | character varying(20) | not null
pw | character varying(20) | not null
name | character varying(50) | not null
authlev | integer | not null default 0
env1 | character varying(50) |
env2 | character varying(50) |
Indexes:
"users_id_key" UNIQUE, btree (id)
"users_pw_key" UNIQUE, btree (pw)







