P-12. テーブルを作成してみよう!

データベースの作成

情報はデータベースという場所に保管されます。

データベースを作成してみよう!

テーブルを作成しよう!

※日本語文字化けについて:初期のxammpでは、コマンド日本語対応がされていません。気になる方で変更したい場合はこちらを参考で実行してください。

以下で文字コードを「ShiftJIS」に変更しておきます。

コマンドを打ってみよう!

※次の課題(次のセクション)で、下記で作成する「m_users」テーブルは使用いたしますので、実行を確認しながら作成してください。

データ型について

MySQLでは、テーブルを作成するときに「このカラムにはどんな種類のデータを入れるのか?」をあらかじめ決めておく必要があります。
この「データの種類」のことを データ型(data type) といいます。

たとえば、「名前」には文字を、「年齢」には数字を、「登録日」には日付を入れるように、それぞれに合ったデータ型を使うことで、データを正しく、無駄なく管理できます。

分類説明
数値型数を入れる年齢、価格、在庫数など
文字列型文字を入れる名前、メールアドレス、コメントなど
日付・時間型日付や時間を入れる登録日、更新日、誕生日など
数値型(数字を入れる)
内容よく使う場面
INT整数(-2,147,483,648〜)ID、在庫、年齢など
TINYINT小さな整数(-128〜127)フラグ(例:0=オフ、1=オン)
BIGINT大きな整数(19桁まで)大量のデータや時間管理用
DECIMAL(10,2)小数(10桁中2桁が小数)金額、重さなど
FLOAT / DOUBLE小数(誤差が出る可能性あり)精密さがそこまでいらない場合
文字列型(文字を入れる)
内容よく使う場面
CHAR(n)固定長の文字列郵便番号、性別コードなど(短いデータ)
VARCHAR(n)可変長の文字列名前、タイトル、メールアドレスなど
TEXT長文コメント、記事本文、メモなど
日付・時間型
内容よく使う場面
DATE年月日(YYYY-MM-DD)誕生日、登録日など
DATETIME日付 + 時間(YYYY-MM-DD HH:MM:SS)作成日時、更新日時など
TIMESTAMPサーバーのタイムゾーンに依存自動的に保存される日時

💡 通常は DATETIMETIMESTAMP を使う。Laravelでは timestamps() で自動設定されます。

🎓 補足ポイント

  • データ型を正しく選ぶと、検索が速くなり、無駄なメモリも使わずに済む。
  • なんでも文字列(VARCHARTEXT)にすると後で困ることがある(例:数値比較できない)。
  • 金額に誤差が出ないように、小数は DECIMAL を使う。
  • 時刻が必要なら DATETIME、日付だけなら DATE

出力結果

m_usersというテーブルが作成されました。

作成されたか確認のため以下のコマンドを実行してみよう!

データダンプとは?

dump(ダンプ)とは、要するにバックアップのことです。データをごっそりまとめて取り出して保存することです。

ちなみにリストアとは、ダンプしたファイルを流し込むものです。

ダンプは、sqlの外から実行します。(コマンドはバージョンによって変わる場合があります)

課題

以下のテーブルを作成してください。

できた内容のデータをダンプして提出してください。

C\xampp\mysql\bin のフォルダ 「level7_3_table_study.sql」 が作成されています。ファイルを提出してください。
※Macは、cd /Applications/MAMP/Library/bin

テーブル名:m_profiles

カラム名名称データ型NULLDefault自動採番KEY備考
idIDintNOTNULLIDをプライマリーキーにする(PRIMARY KEY)
name名前varchar(100)NOTNULL最大全角100文字(200バイト)
kanaカナvarchar(100)NOTNULL最大全角100文字(200バイト)
age年齢intNOTNULL
profileプロフィールtextNOTNULL
place出身都道府県地番号int(5)NOTNULL47都道府県を数字で管理
sex性別int(2)NOTNULL1:男 2:女
created登録日datetimeDEFAULTNULL‘YYYY-MM-DD HH:MM:SS’ 
modified更新日datetimeDEFAULTNULL‘YYYY-MM-DD HH:MM:SS’ 
備考欄は具体的にどのようなデータが入るかを示しているため、制約として書く必要はありません。

実行結果

実行後、「SHOW TABLES;」を行うと、以下のようにtest_db内の中の作成されたテーブルが表示されます。

ヒント

①「テーブルを作成しよう!」という見出しの「テーブル作成のコマンド」内にある、作成例を参考にしよう!

②できた内容のデータダンプをします。
以下のコマンドを実行してデータをlevel7_3_table_study.sqlにすいあげます。

課題・復習用検索キーワード

検索例
🔍sql AUTO_INCREMENTとは
🔍sql NULLとは
🔍mysql テーブル作成流れ

補足

※プライマリーキー(主キー):データを一意に識別するための項目 社員番号など同じ番号がないこと。