Laravelのマイグレーションファイルのカラム名種類(データ型)一覧を整理してみた。

こんにちは。YOSHITAKA(@YOSHITA19704216)です。

初心者
Laravelでカラムを作る際に使えるデータ型がわからないです。

よしたか
学んだことをアウトプットしていきます。

 

この記事を読むことで
  • Laravelでカラムを作る際に使えるデータ型がわかります。

Contents

Laravelでカラムを作る際に使えるデータ型の種類一覧

よく使うカラム名

基本的に使うものだけまずは抜粋しました。

これだけわかればいいって人もいるので先に掲載しておきます。

大前提
  • char(‘カラム名’, 長さ) … 長さを指定する文字列カラム
  • string(‘カラム名’, 長さ) … 長さ指定のVARCHARカラム。
    ※第2引数で長さ指定も可、デフォルト255文字。
  • dateTime(カラム名) … 日時カラム
  • integer(‘カラム名’) … 数値データカラム

自動増分

  • increments(‘id’) … 「符号なしINT」を使用した自動増分ID(主キー)
  • bigIncrements(‘id’) … 符号なしINTを使った自動増分ID(主キー)。
  • unsignedBigInteger(‘id’).符号なしBIGINTを使用した自動増分ID(主キー)

※intとbigIntの違いは後ほど記述。

数字系

  • integer(‘カラム名’) … 数値データカラム
  • bigInteger(‘カラム名’)… 数値データカラム
  • double(‘カラム名’, 桁数, 小数点以下桁数) … ○桁 小数点以下×桁の小数カラム 
見本

桁数/小数点以下桁数指定のFLOATカラム

$table->float(‘amount’, 8, 2); 

日付

  • date(‘カラム名’) … 日付カラム
  • time(‘カラム名’) … 時間カラム
  • dateTime(カラム名) … 日時カラム
    ※合わせ技です。

※dateTime(カラム名) … 日時カラム。(dateは日付のみ、timeは時間のみ。)

 

  • timestamp(‘カラム名’) … TIMESTAMPカラム
  • timestamps() … created_atとupdate_atカラム
  • nullableTimestamps() … NULL値を許す以外、timestamps()と同じ
見本
桁数指定のDATETIMEカラム

$table->dateTime(‘created_at’, 0);有効(全体)

文字系

  • char(‘カラム名’, 長さ) … 長さを指定する文字列カラム
  • string(‘カラム名’) … VARCHARカラム
  • string(‘カラム名’, 長さ) … 長さ指定のVARCHARカラム。
    第2引数で長さ指定も可、デフォルト255文字。
  • text(‘カラム名’) … TEXTカラム
見本

文字長を指定するCHARカラム
$table->char(‘name’, 100);

その他

  • binary(‘カラム名’) … バイナリデータカラム
  • boolean(‘カラム名’) … 真偽値カラム
  • enum(‘カラム名’, [‘定数’, ‘定数’]) … ENUMカラム
  • json(‘カラム名’) … JSONフィールドカラム

INTとBIGINTの違い(MySQL)

INT
  • INT(符号付き) 範囲は -2147483648〜2147483647。
  • INT(符号なし) 範囲は 0〜4294967295。
BIGINT
  • BIGINT(符号付き)範囲は -9223372036854775808〜9223372036854775807。
  • BIGINT(符号なし)範囲は 0〜18446744073709551615。

 

使い分けの目安と考え方

BIGINTではなくINTを使用すると、ディスク容量を削減できる。
外部キーとインデックスに対して使用された場合、インデックスサイズが減り、インデックスが使用されたときのパフォーマンスが向上する。
主キーと外部キーを考えて、テーブルに21億行以上格納するつもりがなければ、INT (つまり、主キーにincrements())を使う。

CHARとVARCHARの違い

CHAR型

固定長の文字列データを扱うデータ型。

CHAR(10)と指定された列の場合、格納される列は常に10バイトになる。
※10バイトに満たない場合は文字列の右側に空白が追加され、10バイトぴったりに調整される。

VARCHAR型

CHAR型と異なり、格納する文字列の長さの調整はされない。
VARCHAR(10)と指定された列の場合、10バイト以下の文字列でも、それに合わせた領域が確保される為、そのままの長さで格納することが可能。

※ただし、最大長以上(10バイト以上)の文字列の格納はできない。

ちなみに、全部をVARCHAR(255)に設定してデータベースを設計していたら、8000バイト以上を超えてエラーになってしまったので、大きい数字になるときは、節約することをお勧めします。

使い分ける目安
  • CHAR型は、郵便番号や社員番号など、データの桁数が決まっているもの向け。
  • VARCHAR型は、氏名や書籍名など、データ桁数が変動する可能性のあるもの向け。 

まとめ

今回はLaravelのマイグレーションファイルのカラム名種類(データ型)一覧についてお伝えしました。

最初のカラムを作る際に必要ですので、忘れたら確認が必要です。

忘れたときの確認ようになれば幸いです。

※プログラミングは習得中ですので、参考程度に記事を読んでください。

あなたは「Web集客」に限界を感じていませんか?

サイトをただ作るだけで満足ですか?

あなたのサービスやコンテンツはとっても有益なものがたくさんあります。

良いコンテンツも埋もれてしまっては全く意味がありません。

正しい知識と実践で、SEO対策はもちろん、ユーザビリティーを考えたサイトを作りませんか?

私と歩めばWebマーケティング知識とWordPressスキルが定着し、サイト回遊率、再訪問がアップします。

しかも、これだけでは終わりません!!

その先の「攻めのメディア」と組み合わせ、あなたのサービスを広めて売上を伸ばしていきます。

サイトを育てて、長い間愛されることのできるWordPressサイトからの集客導線(ゴールデンルート)を一緒に作りませんか?

↓ ↓ ↓ ↓ ↓ ↓ 

おすすめの記事