【PostgreSQL】テーブル設計(データ型、制約)【Part.12】

今回はテーブル設計について解説します。

 

 

テーブルの操作

  • CREATE TABLE ← テーブルの作成
  • DROP TABLE ← テーブルの削除
  • ALTER TABLE ← テーブルの変更

 

 

情報スキーマ

情報スキーマにはデータベースクラスタに関する情報が格納されています。

スキーマのことを「名前空間」と呼ぶこともあります。

 

 

システムカタログ

システムカタログにはデータベース管理に関する情報が格納されています。

 

 

各種制約

テーブルを作成するに当たり、以下のように各種制約を設定することができます。

  • 主キー(プライマリーキー)制約
  • ユニーク制約
  • NOT NULL 制約
  • 外部キー制約
  • チェック制約

主キー制約

主キー制約とは特定のカラムに「重複する値」「NULL値」を格納できないようにする制約を言います。

一意の値を設定したい場合に使用します。

そのため、重複する値や NULL 値は設定できません。

更に自動的にインデックスが作成されます。

 

主キー制約は「CREATE TABLE」「ALTER TABLE」で設定します。

 

 

拡張表示を「on」にします。

※拡張表示(Expanded display)を「on」にすると横長ではなく縦長で表示できます。

postgres=# \x
Expanded display is on.
postgres=#

 

 

現在のデータベースを確認します。

「testdb」を利用します。

postgres=# \l 
List of databases 
-[ RECORD 1 ]—–+———————- 
Name              | postgres 
Owner             | postgres 
Encoding          | UTF8 
Collate           | en_US.UTF-8 
Ctype             | en_US.UTF-8 
Access privileges | 
-[ RECORD 2 ]—–+———————- 
Name              | template0 
Owner             | postgres 
Encoding          | UTF8 
Collate           | en_US.UTF-8 
Ctype             | en_US.UTF-8 
Access privileges | =c/postgres 
                  | postgres=CTc/postgres 
-[ RECORD 3 ]—–+———————- 
Name              | template1 
Owner             | postgres 
Encoding          | UTF8 
Collate           | en_US.UTF-8 
Ctype             | en_US.UTF-8 
Access privileges | =c/postgres 
                  | postgres=CTc/postgres 
-[ RECORD 4 ]—–+———————- 
Name              | testdb 
Owner             | postgres 
Encoding          | UTF8 
Collate           | en_US.UTF-8 
Ctype             | en_US.UTF-8 
Access privileges | 
 
postgres=#

 

testdb にアクセスします。

postgres=# \c testdb
You are now connected to database “testdb” as user “postgres”.
testdb=#

 

主キー制約を設定したテーブル(testtable01)を作成します。

testdb=# CREATE TABLE testtable01( 
testdb(# no INTEGER PRIMARY KEY, 
testdb(# name VARCHAR 
testdb(# ); 
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index “testtable01_pkey” for table “testtable01” 
CREATE TABLE 
testdb=#

 

 

テーブル構造を確認します。

testdb=# \d testtable01 
       Table “public.testtable01” 
 Column |       Type        | Modifiers 
——–+——————-+———– 
 no     | integer           | not null 
 name   | character varying | 
Indexes: 
    “testtable01_pkey” PRIMARY KEY, btree (no) 
 
testdb=#

 

自動的にインデックスが作成されていることが分かります。

 

主キーの追加(ALTER TABLE)

ALTER TABLE で主キーを追加することができます。

ALTER TABLE testtable02 ADD PRIMARY KEY(カラム名);

 

 

 

PostgreSQL シリーズ

今まで学習した PostgreSQL の技術をシリーズとしてまとめました。

 

【PostgreSQL】PostgreSQL の特徴と基本【Part.1】

 

【PostgreSQL】【正規化】リレーショナルデータベース(RDMS)の基本【Part.2】

 

【PostgreSQL】PostgreSQL のインストールと初期設定【Part.3】

 

【PostgreSQL】PostgreSQL の標準付属ツールの説明とコマンド手順【Part.4】

 

【PostgreSQL】PostgreSQL の設定ファイル(postgresql.conf、pg_hba.conf)の解説【Part.5】

 

【PostgreSQL】PostgreSQL のバックアップ手順とリストア手順【Part.6】

 

【PostgreSQL】PostgreSQL の運用管理(ユーザー管理、バキューム)【Part.7】

 

【PostgreSQL】PostgreSQL の基本的な SQL文 とオブジェクトについて【Part.8】

 

【PostgreSQL】PostgreSQL の組み込み関数、ユーザー定義関数、演算子について【Part.9】

 

【PostgreSQL】PostgreSQL のトランザクションについて【Part.10】

 

【PostgreSQL】SQL文【Part.11】

 

【PostgreSQL】テーブル設計(データ型、制約)【Part.12】

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください