MySQLデータ型の詳細

3778 ワード

MySQLデータ型プレビュー:
整数タイプ:
特定のタイプ
長さ(byte)
範囲
説明
tinyint
1
-128~127  0~255(unsigned)
     
smallint
2
-32768~32767  0~65535(unsigned)
     
mediumint
3
-8388608~8388607  0~16777215(unsigned)
     
int
4
-2147483648~2147483647  0~4294967295(unsigned)
     
bigint
8
-2^63 ~ 2^63-1   0~2^64-1(unsigned)
     
decimal(M,D)
M+2
デフォルトは10最大65
値をバイナリ形式で格納し、正確な数値データを格納
numeric(M,D)
M+2
デフォルトは10最大65
値をバイナリ形式で格納し、正確な数値データを格納し、MySQLではNUMERICをDECIMALとして実現
float(M,D)
4
0~23
近似数値データ値の格納
double(M,D)
8
24~53
近似数値データ値の格納
bit(M)
5
1~64
ビット値を格納するために使用され、左側はゼロで入力されます.
文字列のタイプ:
特定のタイプ
長さ(byte)
範囲
説明
char(M)
M
0~255
固定長、その他はスペースで埋めます
varchar(M)
M
0~65535
65535はすべての列で長さを共有し、utf 8符号化では長さ21845である.
binary(M)
M
バイト単位
varbinary(M)
M
バイト単位
text(M)
0~65535
長さ65535バイト、テキストを格納
blob(M)
0~65535
ポインタ方式でバイナリデータを格納
日付タイプ:
特定のタイプ
長さ(byte)
範囲
説明
year
1
1901~2155
date
4
'1000-01-01'~ '9999-12-31'
time
3
バイト単位
timestamp
4
'1970-01-01 00:00:01'~'2038-01-19 03:14:07'
timestampは1回のみ許可され、取り出しは常にローカルタイムゾーンに変換されます.
datetime
8
'1000-01-01 00:00:00'~'9999-12-31 23:59:59'
その他のタイプ:
特定のタイプ
長さ(byte)
範囲
説明
enum
1バイトまたは2バイト
0~65535
最大65535個の要素を含めることができます
set
0~64
ゼロまたは複数の値を含む文字列オブジェクト
数値タイプの格納方法:
すべての数値タイプは、メモリ内でバイナリ値に変換されます.たとえば、1という数値をintタイプで格納すると、メモリ内の格納方式は、intタイプが4バイトを占有し、1バイトが8ビットに等しいため、メモリ長は32ビットの長さになります.tinyintタイプのストレージを使用する場合、メモリ内のストレージ方式は:0000000001
シンボルタイプ:シンボルがビットビットビットを占有するため、-1という数値を格納すると、メモリに格納される方法は11111111です.
負の数はメモリに符号化されて格納されています.例えば、-1:1の元の符号が億万1であれば、逆符号化:11111110、加算符号化:11111111111
数値タイプの後ろのかっこは、表示幅を制限するために使用され、表示効果にのみ影響し、記憶長さ、比較、計算などは制限されません.
文字列タイプの格納方法:
Cahrとvarcharの主な違い:charタイプは「定長文字タイプ」と宣言され、空間の長さを厳格に制限し、カッコには文字の長さを制限し、M文字を厳格に格納し、不足するとスペースが不完全で、長さを超えるとエラーが報告されます.varcharは、データを格納する際に追加のバイトのbitビットを使用して、バイトがデータを格納しているかどうかをマークする「長い文字列タイプ」として宣言します.utf 8符号化では、1文字が3バイトを占有することが規定されており、最大65536/3=21845個のutf 8文字charがvarcharの記憶長と比較される.
CHAR(4)
ストレージが必要VARCHAR(4)
ストレージが必要'' '    '
4バイト''
1バイト'ab' 'ab  '
4バイト'ab'
3バイト'abcd' 'abcd'
4バイト'abcd'
5バイト'abcdefgh' 'abcd'
4バイト'abcd'
5バイト
日付タイプの格納方法:
日付型のデータを格納する場合は、数値型のデータと曖昧にならないように、引用符で囲む必要があります.フォーマットもゆったりしていて、任意の区切り文字で表すことができます
ENUMデータ型:
ENUMは文字列オブジェクトで、リストから値を選択できます.定義はENUM(「value 1」,「value 2」...)です.これらの値は、テーブルの作成時にカラム仕様で明示的に列挙されます.次のようなメリットがあります.
1、列に限られた可能な値セットがある場合のコンパクトなデータストレージ.入力値として指定した文字列は、自動的に数値に符号化されます.
2、読み取り可能なクエリーと出力.数値は、クエリー結果の対応する文字列に変換されます.ストレージが大文字と小文字を無視すると、スペースが切り捨てられ、enumはストレージ時にindex方式でストレージされます.たとえば、ENUM(NULL,’,‘a’,‘b’,‘c’):

index NULL NULL ''
0 'a'
1 'b'
2 'c'
3 ''
0
適切なTINYINTまたはSMALLINTタイプに保存されていないため、enumデータ型は推奨されません.混同されやすく、タイプを変更するときにcopyアルゴリズムを使用して変更値を複雑にします.
データ型プロパティ:zerofill:
zerofillタイプ修飾フィールドを使用すると、不足フィールド表示部はスペースの代わりに0を使用し、zerofillを有効にするとunsignedが自動的に設定されます.zerofillは一般的にカラムの表示幅を設定した後にのみ使用されます