文字は固定幅です。つまり、文字値の格納サイズは列/変数の最大サイズと同じです。
Varcharは可変長です。 Varcharが使用するストレージサイズは、実際に保存されている文字によって異なります。
例1:
いくつかの変数を作成してから、同じ文字列を保存して、SQLServerのdatalength関数で使用されるストレージを確認しましょう。Declare @Variable1 CHAR(20) Declare @Variable2 VARCHAR(20) SET @Variable1='TechBrothersIT' SET @Variable2='TechBrothersIT' Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2SQLServerのCHARとVARCHARの違いは何ですか-T-SQLチュートリアル
できる限り上記を参照してください。14文字しか保存していなくても、Charは20文字で20バイトのスペースを占有していました。一方、Varcharは14文字を格納するために14バイトしか使用しませんでした。
例2:
charと他のvarchatデータ型の2つの列を持つテーブルを作成しましょう。同じ情報を格納し、datalength関数を使用して各値が占めるスペースを確認します。Create table dbo.CharVsVarChar( CHARName CHAR(50),VARName VARCHAR(50)) insert into dbo.CharVsVarChar
Values ('Aamir','Aamir'), ('TechBrothersIT','TechBrothersIT') ,('Raza','Raza') go
Select DataLength(CharName) AS CHARNameLength,DataLength(VarName) AS VarNameLength From dbo.CharVsVarCharSQLServerのCharとVarchar-SQLServer/T-SQLチュートリアル 保存された数や文字に関係なく、Charは常に同じスペースを占めることがわかります。一方、Varcharの占有スペースは、保存する文字数によって異なります。
固定数の文字を格納することがわかっている場合は、Charを使用できます。それ以外の場合はVarcharを使用します。
>