MySQLのデータ型
MySQL はデータを保存します。データであればデータの種類を特定させていただきます。テーブルのフィールドには特定のデータ型が指定されています。次に、対応するデータ型を挿入データで使用する必要があります。また、データ型の長さの要件に従ってください。
MySQL では、データ型を次の型に分類します:
- 数値型 (整数、浮動小数点)
- 文字列型
- 日付と時刻型
- 複合型
- 空間型 (非科学的作業 基本的に必要ありません) 、説明なし)
整数型
MySQLデータ型 | 占有バイト数 | 値の範囲 |
---|---|---|
tinyint | 1バイト | -128~127 |
smallint | 2バイト | -32768~32767 |
mediumint | 3バイト | -8388608〜8388607 |
int | 4バイト | Range-2147483 648~2147483647 |
bigint | 8バイト | + -9.22*10の18乗 |
整数の長さが異なり、実際の使用プロセスも異なります。
MySQL は、オプションの表示幅インジケーターの形式で SQL 標準を拡張し、データベースから値を取得するときに、値を指定された長さまで延長できるようにします。たとえば、フィールドのタイプを INT(6) として指定すると、データベースから取得するときに 6 桁未満の値が自動的にスペースで埋められます。幅インジケーターを使用しても、フィールドのサイズや格納できる値の範囲には影響しないことに注意してください。
- テーブルフィールドを作成するとき、性別を表すために符号なしの小さな整数 (tinyint) を使用できます。女性を表すには 0 を使用し、男性を表すには 1 を使用します。不明を表すには 2 を使用します。 人間の年齢と同様に、テーブルフィールドを作成するときに符号なし整数を使用できます。実際に使用される人間の年齢には負の数はないからです。私たちのビジネスで保存する必要がある最大の価値は何ですか。テーブルを作成するときは、そのような値を格納するタイプを選択します。 floatingポイントタイプタイプタイプ
float(m、d) | 4バイテスル精度フローティングポイントタイプ、m総数、小数点以下 d 桁 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
8 バイト | 倍精度浮動小数点型、合計 m 個、小数点以下 d 桁 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 進数は a文字列として保存された浮動小数点数 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQLデータ型 | 占有バイト数 | 値の範囲 |
---|---|---|
CHAR | 0-255バイト | 固定長文字列 |
VARCHAR | 0 ~ 255 バイト | 可変長文字列 |
TINYBLOB | 0-255バイト | 255文字以下のバイナリ文字列 |
TINYTEXT | 0-255バイト | 短いテキスト文字列 |
ブロブ | 0 -65535 バイト | バイナリ形式の長いテキスト データ |
TEXT | 0-65535 バイト | 長いテキスト データ |
MEDIUMBLOB | 0-16 777 215 バイト | meバイナリ形式のミディアム長のテキストデータ |
MEDIUMTEXT | 0-16 777 215バイト | 中長テキストデータ |
LOGNGBLOB | 0-4 294 967 295バイト | バイナリ形式の非常に大きなテキストデータ |
長文 | 0 -4 294 967 295 バイト | 非常に大きなテキスト データ |
VARBINARY(M) | 0-M バイトの固定長バイトが許可されます 文字列の長さ | 値 + 1 バイト |
BINARY(M ) | M | は、0-M バイトの固定長バイト文字列を許可します |
*CHAR * 型は固定長文字列に使用され、かっこ内のサイズ修飾子を使用して定義する必要があります。このサイズ修飾子の範囲は 0 ~ 255 です。指定した長さより大きい値は切り捨てられ、指定した長さより小さい値はスペースで埋められます。
*VARCHAR * 長さが不足しない場合は、このサイズを値のサイズとして扱います。一方、VARCHAR 型はそれを最大値として扱い、文字列を格納するために実際に必要な長さのみを使用します
型にはスペースが埋め込まれませんが、インジケーターより長い値は切り捨てられます。 VARCHAR 型は実際の内容に基づいて格納される値の長さを動的に変更できるため、フィールドに必要な文字数が不明な場合に VARCHAR 型を使用すると、ディスク領域を大幅に節約し、ストレージ効率を向上させることができます。
テキスト型と BLOB 型フィールド長の要件が 255 を超える場合、MySQL は TEXT と BLOB の 2 つの型を提供します。これらはすべて、保存されたデータのサイズに応じて異なるサブタイプを持ちます。これらの大きなデータは、テキスト ブロックや、画像やサウンド ファイルなどのバイナリ データ タイプを保存するために使用されます。 TEXT 型と BLOB 型には、分類と比較に違いがあります。 BLOB 型では大文字と小文字が区別されますが、TEXT では大文字と小文字が区別されません。サイズ修飾子は、さまざまな BLOB および TEXT サブタイプでは使用されません。
時間タイプ
占有バイト数 | 値の範囲 | |
---|---|---|
3バイト | 日付、形式: 2014-09-18 | |
3バイト | 時間、形式: 08:42:30 | |
8バイト | 日時、形式: 2014-09-18 08:42:30 | |
4バイト | 自動的に保存レコードの変更時刻 | |
1バイト | 年 |
- 実際の状況に応じて上記の型を選択できます
- データベース管理で閲覧しやすくするために、日時型を使用して時刻を保存する人もいます。 複合型
説明 | 例 | |
---|---|---|
set type | set(“member”, “member2”, … “member64”) | |
列挙型 | enum(“member1”, “member2”, … “member65535”) |