テーブルを作成するCREATE TABLE

データベース

この項ではテーブルを作成するCREATE TABLE構文について解説します。

CREATE TABLE構文

CREATE TABLE テーブル名
(
  列定義,
  主キー定義,
  外部キー定義,
  テーブル制約定義リスト(カンマ区切り)

[オプションの設定]

列定義

列定義は次のように記述します。

列名 データ型 [その他の列定義]

列名

『列名』は、列を表す識別子です。MySQLの場合は最大64バイトです。

データ型

『データ型』は、その列に格納されるデータの種類を表します。よく使われるものには以下のようなものがあります。

INT4バイト(-2^31~2^31-1)の整数浮動小数点数型
FLOAT4バイト長の浮動小数点数文字列型
VARCHAR最大65535バイトの可変長文字列
DATE書式’YYYY-MM-DD’の日付日付・時刻型
TIME書式’HH:MM:SS’の時刻
DATETIME書式’YYYY-MM-DD HH:MM:SS’の日時
その他の列定義

『その他の列定義』は、必要に応じて列の特性を設定出来ます。よく使われるものを以下に挙げます。

NULL
またはNOT NULL
その列がNULLを許すかどうか。指定しないとNULLを指定したのと同じになります。
DEFAULTレコードを挿入する際に値を指定しなかった場合の初期値を指定します。
AUTO_INCREMENTレコード挿入時に値を指定しなかった場合、値を1ずつ増加させながら自動挿入します。整数型・浮動小数点数型にのみ指定可能です。またテーブル内で1つの列にしか設定できません。
UNIQUEテーブル内で重複した値を挿入出来ないようにします。
PRIMARY KEY列を主キーに設定します。テーブル内で1つの列にしか設定できないので、複合キーの場合は別に主キー定義として記述します。

主キー定義

主キー定義は次のように記述します。

PRIMARY KEY( 主キーに指定するカラム名リスト(カンマ区切り) )

外部キー定義、テーブル制約定義

これらについては後の節で解説します。

CREATE TABLEの例

例として、次のようなテーブルを作成します。

テーブル名:meibo

列名データ型長さその他
idINTauto_increment
主キー
nameVARCHAR20
rubyVARCHAR40
birthdayDATE
emailVARCHAR100

これを作成するためのSQLの一例を示します。

SQL
CREATE TABLE meibo (

	id		    INT	       		AUTO_INCREMENT,
	name		  VARCHAR(20),
	ruby		  VARCHAR(40),
	birthday	DATE,
	email		  VARCHAR(100),

	PRIMARY KEY(id)

 );

空白文字(半角空白文字、タブ文字、改行文字など)は連続していくつ記述しても1文字だけの場合と同じように解釈されるので、上記は

SQL
CREATE TABLE meibo (id INT AUTO_INCREMENT, name VARCHAR(20), ruby VARCHAR(40), birthday DATE, email VARCHAR(100), PRIMARY KEY(id) );

のように1行に連続して記述してもまったく同じに解釈されます。

やってみよう

phpMyAdminの起動

まず、XAMPP Control Panel を開き、ApacheおよびMySQLを起動します。『Apache』および『MySQL』の行の『Start』ボタンをクリックします。

『Apache』および『MySQL』が起動したら(文字が緑色になったら)、Webブラウザを開いて

404 Error - Not Found

にアクセスしてみましょう(ポートを80以外、たとえば8080にしている場合はhttp://localhost:8080/phpmyadmin)

または、XAMPP Control Panelの『MySQL』の行にある『Admin』ボタンをクリックしても起動出来ます。

既存テーブルの削除

チュートリアルですでにmeiboテーブルを作成している場合は、いったん削除しましょう。

phpMyAdminメインページの左端にあるデータベース一覧から、『dbkiso1』を選択します。存在しない場合は、チュートリアルを参照してデータベース『dbkiso1』を作成してください。

左サイドメニューのdbkiso1の下に存在するテーブル名の一覧が表示されますので、『meibo』をクリックします。『meibo』がない場合は『テーブルの作成』まで進んでください。

操作』タブをクリックして、テーブルに対する特殊な操作を行う画面を表示します。

下の方までスクロールして、『テーブルを削除する(DROP)』をクリックします。

確認のダイアログが表示されるので、『OK』をクリックします。

テーブルの作成

上部の『SQL』タブをクリックし、SQL実行画面を表示します。

以下のSQLを入力して、『実行』ボタンをクリックします。

SQL
CREATE TABLE meibo (

	id		    INT	       		AUTO_INCREMENT,
	name		  VARCHAR(20),
	ruby		  VARCHAR(40),
	birthday	DATE,
	email		  VARCHAR(100),

	PRIMARY KEY(id)

 );

これでテーブルができているはずです。左の一覧に『meibo』と表示されていますか?

練習問題

次のテーブルを作成しなさい。

テーブル名:ex_shohin

列名データ型長さその他
idINT主キー
nameVARCHAR20
priceINT
noteVARCHAR100

コメント

タイトルとURLをコピーしました