読み方 : エヌチャー

NCHAR【NATIONAL CHAR】

NCHARとは?

データベース管理システムDBMS)で用いられるデータ型の一つで、Unicodeを使って多言語文字を扱う固定長文字列型。日本語や中国語の文字、アラビア文字など様々な言語の文字を同一の列に混在させて格納でき、格納する文字数に関わらず定義した文字数分の領域を常に確保する。
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型の機能的な差異が小さくなる傾向がある。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。