by shigemk2

当面は技術的なことしか書かない

CHAR 型と VARCHAR 型

さまざまな文字列値を CHAR(4) 型と VARCHAR(4) 型のカラムを格納したときの結果に基づく、これらのカラム型の違いについて。

CHAR(4) 必要な記憶容量 VARCHAR(4) 必要な記憶容量
'' ' ' 4 バイト '' 1 バイト
'ab' 'ab ' 4 バイト 'ab' 3 バイト
'abcd' 'abcd' 4 バイト 'abcd' 5 バイト
'abcdefgh' 'abcd' 4 バイト 'abcd' 5 バイト

こんな感じです。
char型は固定長文字列型で、varchar型は、可変長文字列型です。

CHAR 型のカラムでは、値の取り出し時に後続のスペースが削除されるため、
CHAR(4) 型と VARCHAR(4) 型から取り出した値はそれぞれの場合で変わりません。