テーブル(表)を作る

今回はデータベースに表を作ってみます。
まずは新規のデータベースを作りましょう。
phpMyAdminで次のクエリを実行します。

CREATE DATABASE sample;

データベースを作ったら、画面左側のデータベース一覧にsampleデータベースが追加されました。
sampleデータベースをクリックして、画面上部のSQLタブをクリックすると、選択したデータベースに対してSQLを実行できるようになります。

phpMyAdmin

ではテーブルを作っていきましょう。
作るテーブルのイメージはこんな感じです。

会員テーブル

テーブルを作るということは、テーブルの各列を定義するということです。
このテーブルには、5つの列があります。

  • 会員ID(主キー)
  • 名前
  • 年齢
  • 住所
  • 登録日時

これらがテーブルを構成する列です。会員IDは行を特定するための値なので「主キー」です。
そして、それぞれの列に対してデータ型を決める必要があります。データ型はプログラムの変数のデータ型と同じで、その列にどのような値を入れられるかというものです。ここでは各列を次のようなデータ型で定義してみます。

  • 会員ID … 整数(1から順番に自動的に番号を付けたい)
  • 名前 … 文字列(50文字以内)
  • 年齢 … 整数
  • 住所 … 文字列(200文字以内)
  • 登録日時 … 日時

そして、住所以外の列は必ずデータを格納する必要があることとします。

この条件でテーブルを作るSQLを書いて実行してみましょう。

CREATE TABLE members (
    id serial PRIMARY KEY,
    name varchar(50) NOT NULL,
    age integer NOT NULL,
    address varchar(200),
    registed_at timestamp NOT NULL
);

実行すると左側のデータベース一覧のsampleデータベースの中に、membersテーブルが作られました。
テーブルの一覧から「構造」を押してみると、定義した列が作られていることが確認できます。

sampleデータベースのテーブル一覧
membersテーブルの構造

CREATE TABLE文の書き方は次のとおりです。

CREATE TABLE テーブル名 (
    列名 データ型 [NOT NULL] [PRIMARY KEY],
    …
);

列名は任意の名前を付けます。全角文字は使えないので、列名を英語にした名前をつけることが多いです。
データ型は様々ありますが、今回使ったデータ型は次のとおりです。

  • varchar … 文字列。カッコ内の数値の文字数まで格納することができる
  • integer … 整数
  • timestamp … 日時(次のようなフォーマットの文字列: 2020-06-16 19:46:38.0000)
  • serial … 整数。1から連番で自動採番される列にする(行を追加する記事で詳しく説明します)

主キーである列にはPRIMARY KEYを付けます。
データを必ず格納する必要がある列にはNOT NULLを付けます。逆にNOT NULLが付いていない列にはデータを格納しなくてもOKです。
主キー(PRIMARY KEY)を指定した列は、NOT NULLを指定しなくても必ずNOT NULL扱いとなります。行を特定するための値なので、空であってはならないからです。

このように、CREATE TABLE文でテーブルを作ることができます。
1つのデータベースには複数のテーブルを作ることができます。テーブル名を変えて複数のCREATE TABLE文を実行するとデータベースの中にテーブルが増えていきます。

最後にテーブルを削除してみましょう。
次のようにDROP TABLE文でテーブルを削除します。

DROP TABLE members;

実行するとデータベースからmembersテーブルが削除されました。

DROP TABLE文の書き方は次のとおりです。

DROP TABLE テーブル名;

データベースを作る CREATE DATABASE、データベースを削除する DROP DATABASE、
テーブルを作る CREATE TABLE、テーブルを削除する DROP TABLE
これらが利用頻度の高い代表的なDDL(Data Definition Language)です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です