テーブルを作成しよう
- 解説
 - 1. 型
 - 2. テーブルの作成
 - 3. テーブルの削除
 - 4. テーブルを作成してみよう
 - 5. テーブルの構成を確認するには
 
解説
1. 型
型(かた)とは
テーブルを作成するには、カラム(テーブルの列)ごとに「どのようなデータを登録することができるか」を決める、データの種類を指定する必要があります。データの種類のことを、型といいます。
カラムに型を指定することで、カラムにふさわしくない値が混入するのを防ぐことができます。
※ふさわしくない値の例)商品価格が登録されるべき列に、商品名を登録してしまった… など
型の種類
カラムに指定することができる型は、様々な種類があります。下表に代表的な型をまとめておくので、確認しましょう。
代表的な型
| 表すデータ | 型名 | データの例 | 
|---|---|---|
| テキスト | text | 'あいうえお' | 
| 整数 | integer | 123 | 
| 小数 | numeric | 3.14 | 
| 日時 | timestamp | '2021-04-08 00:00:00' | 
| 論理値 | boolean | TRUE もしくは FALSE | 
2. テーブルの作成
データベースにテーブルを作成するには、「CREATE TABLE」に続けてテーブル名を記述し、カラム名と型を列挙します。
構文:テーブルを作成する
CREATE TABLE テーブル名 (カラム名1 型1, カラム名2 型2, ...);
例)「menus」テーブルの作成
CREATE TABLE menus (
    name text,
    price integer,
    category text,
    created_at timestamp
);
順を追ってテーブルの作成方法を見ていきましょう。
作成するテーブル名を記述する
まずは「CREATE TABLE」に続けて、新しく作成するテーブル名を記述します。
CREATE TABLE menus
丸かっこ内にカラム名と型を記述する
次に、テーブル名に続けて「()(丸かっこ)」を記述し、丸かっこ内にカラム名と型を記述します。
CREATE TABLE menus (name text);
複数のカラムはカンマで列挙する
複数のカラムを作成する場合は、「,(カンマ)」で区切り、列挙します。
CREATE TABLE menus (name text, price integer, category text, created_at timestamp);
コードの見やすさに応じて改行、字下げする
クエリには改行やタブを含めることができます。クエリを一行で記述することもできますが、適切に改行、字下げすることで、視認性が向上します。
CREATE TABLE menus (
    name text,
    price integer,
    category text,
    created_at timestamp
);
3. テーブルの削除
テーブルを削除するには、「DROP TABLE」に続けてテーブル名を記述します。
構文:テーブルを削除する
DROP TABLE テーブル名;
例)「menus」テーブルの削除
DROP TABLE menus;
テーブルの削除を実行する際、存在しないテーブル名を指定するとエラーとなります。
また、テーブルの作成を実行する際、すでに存在するテーブル名を指定するとエラーとなります。
エラーを回避するには、「DROP TABLE IF EXISTS テーブル名」とします。「IF EXISTS」を記述することで、「もしテーブルが存在すれば、削除する」という命令になります。
構文:テーブルが存在する場合のみ削除する
DROP TABLE IF EXISTS テーブル名;
例)テーブル作成時の重複エラー対策
DROP TABLE IF EXISTS menus;
CREATE TABLE menus (
    name text,
    price integer,
    category text,
    created_at timestamp
);
※テーブルを新規作成する前に、同名のテーブルが存在している場合は削除を実行することで、テーブル作成時の重複エラーを回避することができます。
4. テーブルを作成してみよう
『データベースを作成しよう』で作成した「lesson」データベースに、新しくテーブルを作成しましょう。
操作するデータベースのクエリツールを開く
データベースの操作は、操作の対象となるデータベースのクエリツールで行います。
『データベースを作成しよう』では、「postgres」データベースを対象としたクエリツールで操作をおこないました。前回開いたクエリツールが残っている場合はいったん閉じ、新たに「lesson」データベースのクエリツールを開きます。
手順1
| (1) | 画面上部のタブから「postgres/digskill@local」を右クリックし、「Remove Panel」をクリックしてください。クエリエディタの内容を保存するかの確認ウインドウは「保存しない」を選択して構いません。 ※「postgres/digskill@local」タブが表示されていない場合は、そのまま手順1 (2)に進んでください。  | 

| (2) | サイドメニューの「データベース」一覧から「lesson」を右クリックし、「クエリツール」を選択してください。画面中央に「lesson」データベースを対象としたクエリツールが開きます。 | 

※クエリツール画面は利用する機会が多いので、表示の仕方に慣れておきましょう!
テーブルを作成する
データベースにテーブルを作成するには、「CREATE TABLE」を使います。
今回はカフェサイトの商品データを管理するテーブルとして、「menus」という名前のテーブルを作成します。下図の構成表をもとに、「menus」テーブルを作成していきましょう。
「menus」テーブル(構成)
| カラム名 | 型 | 説明 | 
|---|---|---|
| name | text(テキスト) | 商品名 | 
| price | integer(整数) | 価格 | 
| category | text(テキスト) | カテゴリー | 
| created_at | timestamp(日時) | データ登録日時 | 
手順2
| (1) | クエリエディタに、下記の「menus」テーブルを作成するクエリを入力し、実行してください。 ※クエリの実行は画面上部のツールバーから、実行ボタンをクリックします。  | 
CREATE TABLE menus (
    name text,
    price integer,
    category text,
    created_at timestamp
);
| (2) | 画面下側の「メッセージ」ウインドウから、手順の操作が成功していることを確認してください。 | 

| (3) | サイドメニューの「データベース」一覧から「lesson」を右クリックし、「再読み込み...」をクリックしてください。 | 
| (4) | サイドメニューの「lesson」を展開し、「スキーマ」>「public」>「テーブル」を展開してください。 | 
| (5) | 「テーブル」内に、作成した「menus」テーブルが表示されていることを確認してください。 ※「menus」が表示されない場合は、手順2 (3)からやり直してください。  | 

サイドメニューの「テーブル」では、作成したテーブルの一覧を確認することができます。
pgAdminの操作に慣れないうちは、サイドメニューに表示されるいろいろな項目に戸惑うと思いますが、基本は下記の2点をおさえておけば大丈夫です。
| ・ | 「データベース」内にデータベース一覧が表示される | 

| ・ | 「スキーマ」>「public」>「テーブル」内にテーブル一覧が表示される | 

5. テーブルの構成を確認するには
上の手順で作成した「menus」テーブルの構成を確認してみましょう。
テーブルの構成を確認するには、サイドメニューの「テーブル」一覧から対象となるテーブルを右クリックし、「プロパティ...」を選択します。

プロパティ画面の「列」タブではテーブルのカラム名や型などを確認・編集することができます。

現時点ではまだ学習していない項目も多いですが、「プロパティ...」からテーブルの詳細を確認できることを覚えておきましょう。
                            