こんにちは。YOSHITAKA(@YOSHITA19704216)です。
- 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()と同じ
$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(符号付き) 範囲は -2147483648〜2147483647。
- INT(符号なし) 範囲は 0〜4294967295。
- BIGINT(符号付き)範囲は -9223372036854775808〜9223372036854775807。
- BIGINT(符号なし)範囲は 0〜18446744073709551615。
BIGINTではなくINTを使用すると、ディスク容量を削減できる。
外部キーとインデックスに対して使用された場合、インデックスサイズが減り、インデックスが使用されたときのパフォーマンスが向上する。
主キーと外部キーを考えて、テーブルに21億行以上格納するつもりがなければ、INT (つまり、主キーにincrements())を使う。
CHARとVARCHARの違い
固定長の文字列データを扱うデータ型。
CHAR(10)と指定された列の場合、格納される列は常に10バイトになる。
※10バイトに満たない場合は文字列の右側に空白が追加され、10バイトぴったりに調整される。
CHAR型と異なり、格納する文字列の長さの調整はされない。
VARCHAR(10)と指定された列の場合、10バイト以下の文字列でも、それに合わせた領域が確保される為、そのままの長さで格納することが可能。
※ただし、最大長以上(10バイト以上)の文字列の格納はできない。
ちなみに、全部をVARCHAR(255)に設定してデータベースを設計していたら、8000バイト以上を超えてエラーになってしまったので、大きい数字になるときは、節約することをお勧めします。
- CHAR型は、郵便番号や社員番号など、データの桁数が決まっているもの向け。
- VARCHAR型は、氏名や書籍名など、データ桁数が変動する可能性のあるもの向け。
まとめ
今回はLaravelのマイグレーションファイルのカラム名種類(データ型)一覧についてお伝えしました。
最初のカラムを作る際に必要ですので、忘れたら確認が必要です。
忘れたときの確認ようになれば幸いです。
※プログラミングは習得中ですので、参考程度に記事を読んでください。