Warning: count(): Parameter must be an array or an object that implements Countable in /home/httpd/web/public/models/common/MdlCategories.php on line 488
初心者でも安心してプログラミングが学べます♪|こじかプログラミング

テーブルの作成と削除

テーブルの作成

テーブルを作成するにはCREATE TABLEコマンドを実行します。

CREATE TABLE テーブル名 (カラム名 データ型 [オプション], ……)

実際にテーブルを作成する前に、データ型とオプションの説明をします。

データ型

後ほど詳しく説明をしますが、PostgreSQLのデータ型には主に以下の様なものがあります。

データ型 データの内容
INTEGER -2147483648から+2147483647までの整数値
CHAR 可変長の文字列型。
VARCHAR 固定長の文字列型。
DATE 日付。

オプション

オプションには、その列のデフォルトの値(値が指定されたなかった場合のデフォルト値)や制約を指定することができ、主に以下のオプションがあります。

オプション 意味
DEFAULT デフォルト値
PRIMARY KEY 主キー
UNIQUE 一意(NULLの重複は許可)
NOT NULL NULLを許可しない
CHECK 満たすべき条件式を指定
REFERENCES 参照整合性制約(外部キー)を指定

※参照整合性制約については、後で詳しく説明します。

テーブルを作成する

実際にテーブルを作成してみましょう。すでにtest_dbというデータベースが作成されており、それにテーブルを作成するものとします。それでは、以下の内容の楽曲テーブルmusicを作成しましょう。

カラム名 意味 データ型 オプション
id ID INTEGER PRIMARY KEY
title 楽曲名 VARCHAR(80) NOT NULL
artist アーティスト VARCHAR(80) DEFAULT(anonymous)
price 価格 INTEGER CHECK(price > 0)
published 出版日 DATE  

このCHECK制約は、price列は0より大きい値のみ格納できるという意味です。(NOT NULL制約を設定していないので、NULLは許可されます)。

test_db=> CREATE TABLE music(
test_db(> id INTEGER PRIMARY KEY,
test_db(> title VARCHAR(80) NOT NULL,
test_db(> artist VARCHAR(80) DEFAULT 'anonymous',
test_db(> price INTEGER CHECK (price > 0),
test_db(> published DATE);
CREATE TABLE

一行で全てを入力してもいいですが、わかりやすいように各行に分けて入力します。最後にセミコロン「;」を忘れずに入力してください。CREATE TABLEと表示されたら作成成功です。

テーブルの確認

テーブルを確認するには\dと入力します。

test_db=> \d
       List of relations
 Schema | Name  | Type  | Owner 
--------+-------+-------+-------
 public | music | table | test
(1 row)

テーブルの詳細情報を確認するには\d テーブル名と入力します。

test_db=> \d music
                                   Table "public.music"
  Column   |         Type          | Collation | Nullable |            Default             
-----------+-----------------------+-----------+----------+--------------------------------
 id        | integer               |           | not null | 
 title     | character varying(80) |           | not null | 
 artist    | character varying(80) |           |          | 'anonymous'::character varying
 price     | integer               |           |          | 
 published | date                  |           |          | 
Indexes:
    "music_pkey" PRIMARY KEY, btree (id)
Check constraints:
    "music_price_check" CHECK (price > 0)

テーブルの削除

テーブルを削除するにはDROP TABLEコマンドを実行します。

test_db=> DROP TABLE テーブル名;
DROP TABLE

DROP TABLEと表示されたら削除成功です。

演習

今後の学習でも使用することを兼ねて、顧客テーブルcustomerを作成してみましょう。

カラム名 意味 データ型 オプション
id ID INTEGER PRIMARY KEY
name 氏名 VARCHAR(80) NOT NULL
address 住所 VARCHAR(200) NOT NULL
test_db=> CREATE TABLE customer(
test_db(> id INTEGER PRIMARY KEY,
test_db(> name VARCHAR(80) NOT NULL,
test_db(> address VARCHAR(200) NOT NULL);
CREATE TABLE

プログラミングの必要性

フェイスブックのザッカーバーグ氏やマイクロソフトのビル・ゲイツ氏などが、プログラミングの必要性について語っています。

おすすめアイテム

「M570」以来、実に7年ぶりのロジクール製トラックボールマウス。プログラミングをするにあたって、一度使うともう元には戻れません!