「char」と「varchar」は何か違いがあるのでしょうか?

せんな
2014-07-30 14:24 1312 1

SQLにおいて、必ず4桁の数字が入ると決まっている列に対して、

char(4)と書くのとvachar(4)と書くのでは、何か違いがあるのでしょうか?

コメント

2014年 08月 11日 (19:06)
こんにちは。
イノ(inno)です。

DECLARE @Str1 char(4)
DECLARE @Str2 varchar(4)

SET @Str1 = 'A'
SET @Str2 = 'B'

SELECT @Str1, @Str2

ここでchar(4)を指定した@Str1に'A'を設定しました。
1バイトを指定しましたが、実際は4バイトを全部使用しています。
2バイトを指定しても4バイトを全部使用します。

varchar(4)を指定した@Str2に'B'を設定してみます。
ここも1バイトを指定しました。実際使用されるバイト数もvarcharの場合は1バイトです。
2バイトを指定すると指定した2バイトのみ使用することになります。

では、全部varcharを使った方がいいと思われるかも知れませんが、
大容量データベースでは4バイト未満を使用する場合、charを使った方がパフォーマンス的にイイと言われています。