MySQLでテーブルを作成する(‎create table の使い方)

テーブルを作成するには「CREATE TABLE」文を使います。

ここでは MySQLコマンド「CREATE TABLE」の具体的な使い方を解説していきます。

 

「CREATE TABLE」の基本

以下のコマンドを実行すると、テーブルを作成することができます。

CREATE TABLE テーブル名 (カラム名1 データ型1, カラム名2 データ型2, ……);
メモ

「データ型」については、このページ内で詳しく解説していきます。

 

テーブルを作成する

実際にMySQLサーバーに接続し、テーブルを作成してみましょう。

 

その前に以下のコマンドで「cooking」という名前のデータベースをあらかじめ作成し、選択しておきます。

CREATE DATABASE cooking;
USE cooking;
メモ

CREATE DATABASE 文の詳しい使い方はこちら

USE 文の詳しい使い方はこちら

 

それではテーブルを作成してみましょう。コマンドは以下。

CREATE TABLE menus (id INT, name VARCHAR(100));

 

このコマンドでは、「menus」という名前のテーブルが作成できます。

また、「id(データ型は INT)」と「name(データ型は VARCHAR)」という名前の2つのカラムで構成しています。

 

コマンドを実行して、Query OK という表示が出てきたら、テーブルが作成できたことになります。

 

データ型とは?

CREATE TABLE 文の中で、それぞれのカラムごとにデータ型を指定します。

この「データ型」は、テーブルに格納するデータの形式です。

 

具体的には、

  • 数値
  • 文字列
  • 日時

などの形式を指定することができ、これをあらかじめ決めておくことでそのカラムに保存するデータのフォーマットを統一させることができます。

 

例えば料理のメニューを保存するテーブルに、料理名を格納するための name カラムがあったとしましょう。

この name カラムには「カレー」や「ハンバーグ」といった値を入れる予定なので、文字列の型を指定します。また、id カラムは「1」や「2」といった値を入れる予定なので、数値の型を指定するといった具合です。

 

これでもし id カラムに文字列を保存しようとしても、数値に変換されて保存されます。

1つのカラムで文字列や数値など、複数のフォーマットのデータが混在することはありません。

メモ

データ型について、もっと詳しい話はこちらに書きました。

 

おもなデータ型の種類

MySQLのコマンド中で指定できる、よく使うデータ型を以下にまとめました。

INT 整数。
DECIMAL(全体の桁数, 小数点以下の桁数) 小数。

後ろにカッコで全体の桁数と、小数点以下の桁数を指定して使う。

DECIMAL(5, 2) のように指定すると、フィールドに 123.45 といった数値を保存できる。

VARCHAR(文字数) 文字列。

後ろにカッコで文字数を指定して使う。

VARCHAR(100) のように指定すると、ひとつのフィールドに100文字まで保存できる。

DATETIME 日時。
DATE 日付。
メモ

データ型一覧はこちらに書きました。

 

ここまでが「CREATE TABLE」の基本!

理解をさらに深めたい方は以下からの内容もご覧ください。

 

同じ名前のテーブルが存在したときのエラーを表示しない

テーブル作成時、すでに同じ名前のテーブルが存在した際に 以下のようなエラーが表示されます。

 

以下のように IF NOT EXISTS をつけると、このエラーを表示しないようにすることができます。

CREATE TABLE IF NOT EXISTS テーブル名 (カラム名1 データ型1, カラム名2 データ型2, ……);

 

すでに存在している「menus」テーブルを IF NOT EXISTS を使って作成するコマンド例

CREATE TABLE IF NOT EXISTS menus (id INT, name VARCHAR(100));

エラーになっていないですが、新しいテーブルが作成されたわけではありません。

 

まとめ

以上、MySQLコマンド「CREATE TABLE」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「CREATE TABLE」コマンドでテーブルを作成することができる。
  • テーブル作成時には、必要なカラム名と そのデータ型を指定する。