テーブルを作成するには「CREATE TABLE」文を使います。
ここでは MySQLコマンド「CREATE TABLE」の具体的な使い方を解説していきます。
「CREATE TABLE」の基本
以下のコマンドを実行すると、テーブルを作成することができます。
CREATE TABLE テーブル名 (カラム名1 データ型1, カラム名2 データ型2, ……);
「データ型」については、このページ内で詳しく解説していきます。
テーブルを作成する
実際にMySQLサーバーに接続し、テーブルを作成してみましょう。
その前に以下のコマンドで「cooking」という名前のデータベースをあらかじめ作成し、選択しておきます。
CREATE DATABASE cooking;
USE cooking;
それではテーブルを作成してみましょう。コマンドは以下。
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(全体の桁数, 小数点以下の桁数) |
小数。
後ろにカッコで全体の桁数と、小数点以下の桁数を指定して使う。
|
VARCHAR(文字数) |
文字列。
後ろにカッコで文字数を指定して使う。
|
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」コマンドでテーブルを作成することができる。
- テーブル作成時には、必要なカラム名と そのデータ型を指定する。