LINEで現役エンジニアに直接質問してみよう!登録無料

MySQLでテーブルを作成する(CREATE TABLE)

テーブルを作成するには「CREATE TABLE」コマンドを使います。

mysql> CREATE TABLE users (id INT, email VARCHAR(255), password VARCHAR(255));
Query OK, 0 rows affected (0.02 sec)

このコマンドを実行すると、usersというテーブルが作成されます。

CREATE TABLEの基本

下記コマンドでテーブルを作成出来ます。

CREATE TABLE テーブル名 (カラム名1 カラム型1, カラム名2 カラム型2, ...);

CREATE TABLEを実行してみる

テーブルを作成するには、事前に下記の2操作が必要です。

データベースを作成して選択するには下記のコマンドを実行すればOKです。

CREATE DATABASE sampleapp_development;
USE sampleapp_development;

ここで初めてテーブルを作成出来ます。

mysql> CREATE TABLE users (id INT, email VARCHAR(255), password VARCHAR(255));
Query OK, 0 rows affected (0.02 sec)

このコマンドを実行すると、usersというテーブルを作成できます。また、id email passwordという3つのカラムを作成します。

id emailなどのカラム名の後にINT VARCHAR(255)などが書いてありますよね?これが型です。

型については後ほど詳しく解説しますね!

データ型とは?

データ型とは、簡単に言うと「同じ性質を持ったデータしか入れられないようにする機能」です。

例えば、Excelで同じ列に数字と文字列を入れていたら、後で計算しようとしてもうまく出来ませんよね?効率が悪すぎます。

そこで、このように「販売単価」「販売個数」は、普通に数字に揃えるのでは無いでしょうか?

この方が後で合計値や平均値割り出したりなどの計算がしやすくなります。

この時の、数字や文字列などデータの性質を表したものを「型」と言います。

テーブル作成時に型を指定しますが、これをすることでもうその列にはその型のデータしか入らないようにすることが出来ます

このようにすることで、MySQLでデータ検索をしたり集計したりしても、エラーが発生せずに処理をこなすことができるわけです。

データ型の種類

データ型には様々な種類があります。

先程のExcelの例での数値は「1,2,…」などの整数でしたが、MySQLではでは「少数型」というものあります。

下記で一覧にするので、順番に確認していきましょう!

  • INT: 整数型
  • DECIMAL: 少数型
  • DATE: 日付型。「2020/01/01」などの日付しか入れられません。
  • DATETIME: 日時型。「2020/01/01 – 10:10:50」など「日付 + 時分秒」まで入れられます。
  • VARCHAR(文字数): 文字列型。VARCHAR(255)のようにして使います。なお、VARCHAR(255)VARCHAR(127)など中身の数字が違えば別の型になります。

主に使うのはこの5つです。

ここまでが「CREATE TABLE」の基本です。

この後は、テーブルがしない存在した時のみ作成する方法などの深い知識を解説します。

テーブルがしない存在した時のみ作成する方法

テーブルが既に存在する時にCREATE TABLEを実行すると、下記のようにエラーになります。

mysql> CREATE TABLE users (id INT, email VARCHAR(255), password VARCHAR(255));
ERROR 1050 (42S01): Table 'users' already exists

存在しない時のみ作成したい時にはDROP DATABASE IF NOT EXISTS データベース名を使いましょう!

何回実行してもエラーになることはありません。

mysql> CREATE TABLE IF NOT EXISTS users (id INT, email VARCHAR(255), password VARCHAR(255));
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> CREATE TABLE IF NOT EXISTS users (id INT, email VARCHAR(255), password VARCHAR(255));
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> CREATE TABLE IF NOT EXISTS users (id INT, email VARCHAR(255), password VARCHAR(255));
Query OK, 0 rows affected, 1 warning (0.02 sec)

まとめ

  • テーブルを作成する時は、CREATE TABLEを使う
  • テーブルの型とは、同じ性質を持ったデータしか入れられないようにする機能の事
  • テーブルが存在しない時のみ作成するにはCREATE TABLE IF NOT EXISTSを使う

以上、テーブルの作成方法をアキ(@hackablejp)が解説しました!

この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。