んだです。メモです。
MySqlの勉強がてら始めた「SQLパズル」 まだパズル2問目ですが、書き方も考え方も学べて面白いっす。
パズルを解きながら、気になった点をメモっていきます
CHARとVARCHAR
CHARもVARCHARも、文字列の型。
ちなみに、MySQlの文字列の方には、これ以外に
BINARY
VARBINARY
BLOB
TEXT
ENUM
SET
がある。
CHARは、固定長文字列
固定長文字列は、カラムに入る文字列の長さを固定するということ
たとえば、CHAR(4)と指定した場合は、そのカラムに入るのは4文字固定。
なので、 CHAR(4)と指定した場合 、4文字までしか入らない。
4文字以上をInsertしようとした場合
Data too long for column
とエラーになる。
逆に、短く
'ab'
とinsertすると、残りの2文字は指定された長さになるように右側がスペースで埋まる。
CHARの使いどころ
郵便番号や社員番号、バーコードなど文字の長さが決まっているデータに対しては有効
固定長のため、検索時等CPU負荷を軽減できる。
VARCHARは、可変長文字列
可変長なので、文字列の長さに合わせてデータが保存される。
ちなみに、長さの情報を255バイトまでは1バイト,それ以上は2バイト余分に使って保存される。
CHARと同じように
VARCHAR(255)
とか()の中で最大文字数を設定する。
設定できる値は、0文字以上65,535文字以下
VARCHARの使いどころ
データの長さが変更する可能性があるもの。
以上。