WEBの勉強ノート
Loading

PostgreSQL データベース・テーブルの作成

2009 年 5 月 27 日 カテゴリー: PostgreSQL

PostgreSQL は、複数のデータベースを持つことができます。また、各データベースはその中に複数のテーブルを持つことができます。同じデータベース内では、テーブル同士のアクセスができますが、データベースを跨いだアクセスはできません。

image

データベースの作成

データベースの作成には、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)

コメントをどうぞ