テーブル(表)を作る
今回はデータベースに表を作ってみます。
まずは新規のデータベースを作りましょう。
phpMyAdminで次のクエリを実行します。
CREATE DATABASE sample;データベースを作ったら、画面左側のデータベース一覧にsampleデータベースが追加されました。
sampleデータベースをクリックして、画面上部のSQLタブをクリックすると、選択したデータベースに対してSQLを実行できるようになります。

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

テーブルを作るということは、テーブルの各列を定義するということです。
このテーブルには、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テーブルが作られました。
テーブルの一覧から「構造」を押してみると、定義した列が作られていることが確認できます。


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)です。
