SQL入門 STEP2|テーブルを作ってみよう

karin@taishi@felmia

テーブルとは?

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          | キーボード    | 8000

product_id、product_name、priceのような縦方向の項目をカラムと呼びます。

一方、

1 | ノートPC | 120000

のような横方向の1件分のデータをレコードと呼びます。

カラムとレコード

カラム
→ どのような情報を保存するのかを表す項目

レコード
→ テーブルに保存されている1件分のデータ

この2つは今後もよく使う言葉なので、少しずつ慣れていきましょう。

テーブルを作るには?

PostgreSQLでテーブルを作るときは、CREATE TABLEを使います。

基本的な書き方は次のとおりです。

CREATE TABLE テーブル名 (
    カラム名 データ型,
    カラム名 データ型
);

CREATEには「作成する」という意味があります。

そのため、

CREATE TABLE

で、「テーブルを作成する」という命令になります。

テーブル名の後ろに()を書き、その中へ作成するカラムを指定します。

データ型を指定しよう

カラムを作るときは、そこへどのようなデータを保存するのかも指定します。

Javaで、

int price;
String name;

のように型を指定したのと少し似ています。

PostgreSQLにもデータ型があり、例えば次のようなものがあります。

データ型保存するデータの例
INTEGER1、100、3000などの整数
VARCHAR(100)商品名や名前などの文字
DATE日付
BOOLEANtrue / false

今回は、

INTEGERとVARCHAR

を使ってテーブルを作ります。

VARCHAR(100)の100は、保存できる文字数の上限を表しています。

ルミィ
ルミィ

Javaにも型があったね!
データベースでも、どんなデータを入れる場所なのか決めておくんだ♪

productsテーブルを作ってみよう

それでは、STEP1で作成したsql_studyデータベースに、商品を管理するテーブルを作ってみましょう。

今回作成するテーブル名は、

products

とします。

保存する項目は次の3つです。

カラム名データ型保存する内容
product_idINTEGER商品ID
product_nameVARCHAR(100)商品名
priceINTEGER価格

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 KEY

productsテーブルでは、次のようになります。

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を非常によく使うので、まずは基本的な書き方から確認していきましょう。

→ STEP3「SELECTでデータを取得しよう」

学習内容を確認したいときは、SQL入門の一覧から各STEPを確認できます。

→ SQL入門|初心者が基礎から学べるSQL学習ガイド

記事URLをコピーしました