NCHAR【NATIONAL CHAR】
NCHARとは?

固定長とは、実際に保存する文字列が指定文字数より短い場合でも、残りの領域を空白で埋めて一定のデータ長に揃える方式である。例えば「NCHAR(10)」と定義した列に3文字の値を格納すると、内部的には10文字分の領域が使われる。データ長が常に一定であるため、データベースエンジンは各レコードのサイズを事前に計算でき、インデックスの管理やデータの読み取りを効率的に処理できる場合がある。
通常のCHAR型がデータベースの既定文字コードに依存するのに対し、NCHARは国際的な文字コード標準であるUnicodeを使用する。文字の長さはバイト数ではなく文字数単位で数えるため、言語の違いによる文字数の差異が生じない。例えば「NCHAR(10)」は、英数字であっても漢字であっても等しく10文字を格納できる。
可変長のUnicode文字列型には「NVARCHAR」があり、NCHARとよく対比される。NCHARは格納する文字数が常に一定のデータに適しており、顧客コードのような長さが決まっている項目の定義に用いられることが多い。一方、文字数がデータごとに大きく異なる項目に対してNCHARを使うと、空白で埋められた領域が記憶容量を無駄に消費するため、NVARCHARが選ばれる。
SQLでの構文はDBMS製品によって若干異なるが、一般的には「NCHAR(n)」と記述してnに最大文字数を指定する。nを省略すると「NCHAR(1)」として扱う製品が多い。格納できる最大文字数には製品ごとに上限があり、例えばSQL Serverでは4000文字に設定されている。近年ではシステム全体の標準文字コードにUTF-8などのUnicodeを採用するDBMSが増えており、通常の文字列型とNCHAR型の機能的な差異が小さくなる傾向がある。