SQL入門 STEP2|テーブルを作ってみよう
テーブルとは?
STEP1では、PostgreSQLをインストールして、SQLを実行できる環境を準備しました。
ここからは、実際にデータを保存する準備をしていきます。
データベースでは、商品やユーザーなどのデータをテーブルと呼ばれる場所に保存します。
例えば、商品を管理するテーブルなら次のような形です。
商品ID | 商品名 | 価格
-------+--------------+-------
1 | ノートPC | 120000
2 | マウス | 3000
3 | キーボード | 8000横方向に1件分の商品情報が並び、縦方向には商品IDや商品名、価格といった同じ種類の情報が並んでいます。
Excelの表をイメージすると分かりやすいかもしれません。
テーブルとは?
データベースの中で、データを表のような形で管理するためのものです。
例えば商品を管理するなら、
- 商品ID
- 商品名
- 価格
など、保存したい項目をあらかじめ決めておきます。

データベースの中に表を作って、そこへデータを保存していくんだね♪
カラムとレコードを確認しよう
テーブルを扱うときに、まず覚えておきたい言葉がカラムとレコードです。
先ほどの商品テーブルなら、
product_id | product_name | price
-----------+--------------+-------
1 | ノートPC | 120000
2 | マウス | 3000
3 | キーボード | 8000product_id、product_name、priceのような縦方向の項目をカラムと呼びます。
一方、
1 | ノートPC | 120000
のような横方向の1件分のデータをレコードと呼びます。
カラムとレコード
カラム
→ どのような情報を保存するのかを表す項目
レコード
→ テーブルに保存されている1件分のデータ
この2つは今後もよく使う言葉なので、少しずつ慣れていきましょう。
テーブルを作るには?
PostgreSQLでテーブルを作るときは、CREATE TABLEを使います。
基本的な書き方は次のとおりです。
CREATE TABLE テーブル名 (
カラム名 データ型,
カラム名 データ型
);CREATEには「作成する」という意味があります。
そのため、
CREATE TABLE
で、「テーブルを作成する」という命令になります。
テーブル名の後ろに()を書き、その中へ作成するカラムを指定します。
データ型を指定しよう
カラムを作るときは、そこへどのようなデータを保存するのかも指定します。
Javaで、
int price;
String name;のように型を指定したのと少し似ています。
PostgreSQLにもデータ型があり、例えば次のようなものがあります。
| データ型 | 保存するデータの例 |
|---|---|
INTEGER | 1、100、3000などの整数 |
VARCHAR(100) | 商品名や名前などの文字 |
DATE | 日付 |
BOOLEAN | true / false |
今回は、
INTEGERとVARCHAR
を使ってテーブルを作ります。
VARCHAR(100)の100は、保存できる文字数の上限を表しています。

Javaにも型があったね!
データベースでも、どんなデータを入れる場所なのか決めておくんだ♪
productsテーブルを作ってみよう
それでは、STEP1で作成したsql_studyデータベースに、商品を管理するテーブルを作ってみましょう。
今回作成するテーブル名は、
productsとします。
保存する項目は次の3つです。
| カラム名 | データ型 | 保存する内容 |
|---|---|---|
product_id | INTEGER | 商品ID |
product_name | VARCHAR(100) | 商品名 |
price | INTEGER | 価格 |
pgAdmin 4でsql_studyのQuery Toolを開き、次のSQLを入力してください。
CREATE TABLE products (
product_id INTEGER,
product_name VARCHAR(100),
price INTEGER
);入力できたら、実行ボタン(▶)をクリックします。
エラーが表示されずに実行できれば、productsテーブルの作成は完了です。
作ったテーブルを確認しよう
作成したテーブルは、pgAdmin 4の画面左側から確認できます。
sql_studyの中にある、
Schemas → public → Tables
の順に開いてみましょう。
Tablesの中に、
productsが表示されていれば、テーブルは正しく作成されています。

もし表示されていない場合は、Tablesを右クリックしてRefreshを実行してみてください。
一度テーブルを削除してみよう
先ほど、productsテーブルを作成しました。
今回はまだ商品データを登録していないので、ここで一度テーブルを削除してみます。
テーブルを削除するときは、DROP TABLEを使います。
DROP TABLE テーブル名;今回削除するのはproductsなので、次のSQLになります。
DROP TABLE products;Query Toolで実行してください。
実行後、pgAdmin 4の、
Schemas → public → Tables
を確認します。
productsが表示されたままの場合は、Tablesを右クリックしてRefreshを実行してください。
productsが表示されなくなれば、削除できています。
DROP TABLEとは?
テーブルそのものを削除するSQLです。
DROP TABLE products;を実行すると、productsテーブルが削除されます。
実際のシステムでは、テーブルの中に入っているデータも失われるため、実行するときは十分に注意が必要です。
今回はまだデータを登録していない練習用テーブルなので、削除して問題ありません。

テーブルそのものを消しちゃう命令なんだね。
実際のお仕事では、間違えて実行しないように注意しないと!
PRIMARY KEYを設定してみよう
もう一度productsテーブルを作ります。
今度は、product_idに**PRIMARY KEY**を設定します。
商品を管理するとき、
1 | ノートPC
2 | マウス
3 | キーボードのように、それぞれの商品を区別できる番号があると便利です。
今回のproduct_idは、その商品の番号として使います。
PRIMARY KEYとは?
それぞれのレコードを区別するために使うカラムです。
PRIMARY KEYに指定したカラムには、同じ値を重複して登録することはできません。
今回はproduct_idをPRIMARY KEYにして、商品ごとに異なるIDを持たせます。
書き方は、カラムのデータ型の後ろにPRIMARY KEYを追加します。
カラム名 データ型 PRIMARY KEYproductsテーブルでは、次のようになります。
CREATE TABLE products (
product_id INTEGER PRIMARY KEY,
product_name VARCHAR(100),
price INTEGER
);Query Toolで実行してください。
作成できたら、再び、
Schemas → public → Tables
を確認します。
productsが表示されていればOKです。
これからのSTEPでは、このPRIMARY KEYを設定したproductsテーブルを使ってSQLを練習していきます。

今度は商品IDで、それぞれの商品をちゃんと区別できるテーブルになったんだね♪
SQLを書くときの大文字・小文字
ここまで、
CREATE TABLEや、
INTEGERのようにSQLの命令やデータ型を大文字で書いてきました。
SQLのキーワードは、
CREATE TABLE productsのように大文字で書くことも、
create table productsのように小文字で書くこともできます。
この講座では、SQLの命令とそれ以外を見分けやすくするため、
SQLのキーワードは大文字
で書いていきます。
テーブル名やカラム名については、
products
product_id
product_nameのように小文字で統一します。
よくある間違い
カンマを忘れる
カラムが複数ある場合は、それぞれを,で区切ります。
CREATE TABLE products (
product_id INTEGER PRIMARY KEY,
product_name VARCHAR(100),
price INTEGER
);最後のprice INTEGERの後ろには、カンマは必要ありません。
データ型を書き忘れる
カラム名だけでは、どのようなデータを保存するのか分かりません。
product_name VARCHAR(100)のように、カラム名とデータ型をセットで指定します。
同じテーブルをもう一度作ろうとする
すでにproductsが存在する状態で、もう一度、
CREATE TABLE productsを実行するとエラーになります。
「SQLが間違っている」とは限らないので、すでに同じ名前のテーブルを作っていないか確認してみましょう。
STEP2のまとめ
STEP2のポイント
- データベースではテーブルにデータを保存する
- カラムはデータの項目を表す
- レコードは1件分のデータを表す
CREATE TABLEでテーブルを作成できる- カラムにはデータ型を指定する
PRIMARY KEYはレコードを区別するために使うDROP TABLEを使うとテーブルを削除できる
今回は、productsという商品用のテーブルを作成しました。
まだ中身は空っぽですが、これで商品データを保存する場所ができました。

STEP2クリア!
データを入れるための「箱」ができたね♪
次のSTEPへ
次のSTEPでは、今回作成したproductsテーブルに実際の商品データを用意して、SELECTを使ってデータを取得します。
SQLではデータを調べるときにSELECTを非常によく使うので、まずは基本的な書き方から確認していきましょう。
学習内容を確認したいときは、SQL入門の一覧から各STEPを確認できます。
