MySQL - データ型
ナビゲーションに移動
検索に移動
概要
※注意
各データ型を選択する場合において、以下に示す事柄を考慮すること。
- ストレージ効率
- 必要最小限のサイズを選択する。
- パフォーマンス
- 検索や演算の頻度を考慮する。
数値型
データの正確性において、数値型では、DECIMAL型とFLOAT / DOUBLE型の選択が重要となる。
整数型
- TINYINT
- -128〜127 (1バイト)
- UNSIGNED TINYINT
- 0〜255
- SMALLINT
- -32768〜32767 (2バイト)
- UNSIGNED SMALLINT
- 0〜65535
- MEDIUMINT
- -8388608〜8388607 (3バイト)
- UNSIGNED MEDIUMINT
- 0〜16777215
- INT / INTEGER
- -2147483648〜2147483647 (4バイト)
- UNSIGNED INT / UNSIGNED INTEGER
- 0〜4294967295
- BIGINT
- -9223372036854775808〜9223372036854775807 (8バイト)
- UNSIGNED BIGINT
- 0〜18446744073709551615
小数型
- DECIMAL(M,D) / NUMERIC(M,D)
- 正確な小数を扱う
- M
- 全体の桁数 (最大65)
- D
- 小数点以下の桁数
- FLOAT
- 単精度浮動小数点数 (4バイト)
- 精度は約7桁
- DOUBLE
- 倍精度浮動小数点数 (8バイト)
- 精度は約15桁
文字列型
文字列型では、適切な文字セットの選択が必要となる。
固定長
- CHAR(N)
- 固定長文字列 (最大255文字)
- 指定した長さより短い文字列は空白で埋められる。
- 可変長
- VARCHAR(N)
- 可変長文字列 (最大65,535文字)
- 実際のデータ長だけを使用。
- TINYTEXT
- 最大255文字 (1バイト + データ長)
- TEXT
- 最大65535文字 (2バイト + データ長)
- MEDIUMTEXT
- 最大16777215文字 (3バイト + データ長)
- LONGTEXT
- 最大4294967295文字 (4バイト + データ長)
バイナリ型
- BINARY(N)
- 固定長バイナリ文字列
- VARBINARY(N)
- 可変長バイナリ文字列
- TINYBLOB
- 最大255バイト
- BLOB
- 最大65535バイト
- MEDIUMBLOB
- 最大16777215バイト
- LONGBLOB
- 最大4294967295バイト
日付・時間型
- DATE
- 日付 (YYYY-MM-DD形式)
- 範囲 : 1000-01-01 〜 9999-12-31
- TIME
- 時間 (HH:MM:SS形式)
- 範囲 : -838:59:59 〜 838:59:59
- DATETIME
- 日付と時間 (YYYY-MM-DD HH:MM:SS形式)
- 範囲 : 1000-01-01 00:00:00 〜 9999-12-31 23:59:59
- TIMESTAMP
- タイムスタンプ
- 範囲 : 1970-01-01 00:00:01 UTC 〜 2038-01-19 03:14:07 UTC
- YEAR
- 年 (4桁)
- 範囲 : 1901〜2155
特殊型
- ENUM
- 列挙型
- 定義された値の中から1つだけ選択できる。
- 最大65535個の値を定義できる。
- SET
- 複数の値を選択可能な列挙型
- 最大64個の値を定義できる。
- JSON
- JSON形式のデータを格納できる。
- JSONデータの検索や操作が可能である。
空間データ型
- GEOMETRY
- あらゆる種類の空間データ
- POINT
- 座標点
- LINESTRING
- 線データ
- POLYGON
- 多角形データ
- MULTIPOINT
- 複数の点データ
- MULTILINESTRING
- 複数の線データ
- MULTIPOLYGON
- 複数の多角形データ
- GEOMETRYCOLLECTION
- 異なる種類の空間データの集合