varcharとnvarcharの主な違いは、varcharが可変長の非Unicodeデータ型であるのに対して、nvarcharは可変長のUnicodeデータ型であることです。
データベースはデータの集合体であり、DBMSはデータベースを効率的に管理するためのソフトウェアです。
MSSQLのようなDBMSはリレーショナルモデルに基づいています。
データはテーブルに格納され、これらのテーブルは互いに接続されています。
各テーブルには、特定の値のセットが格納されます。
各行はレコードを表し、列は属性を表します。
テーブルに値を格納する場合、各カラムは特定の型のデータを持つ必要があります。
つまり、各カラムにはデータ型があります。
Varchar と nvarchar はそのようなデータ型です。
varcharとは
構造化照会言語(Structured Query Language, SQL)は、DBMSでデータを検索、管理するのに役立つ言語です。
SQLのデータ型はテーブルの属性のタイプを定義します。
したがって、DBMS の各カラムは特定のデータ型を持っています。
このデータ型は、そのカラムが格納できるデータの種類を記述します。
プログラマーはこれらのデータ型を使用してテーブルを作成することができます。
簡単に説明すると、varchar は長さが不定の文字データの集合を記述するデータ型です。
データ型 varchar の列は、文字と数字を格納することができます。
ある限度までデータを保持することができます。
MSSQLは最大8000文字を保持することができます。
プログラマーがvarchar(max)を使用する場合、2E + 31文字の最大長を格納することができます。
nvarcharとは
これに対して、nvarchar は可変長の Unicode 文字を格納するデータ型です。
Unicodeとは、英語、ギリシャ語、アラビア語などの言語の文字や、数学記号などの様々な記号を表現するための符号化規格のことです。
したがって、varcharよりも多くの文字を表現することができます。
MSSQLでは、nvarcharデータ型の各文字は2バイトを必要とします。
varchar と nvarchar の違い
定義
Varcharは、長さが不定の非Unicode文字データの集合を格納するSQLのデータ型です。
これに対し、nvarcharは、長さが不定のUnicode文字データの集合を格納するSQLのデータ型です。
したがって、varcharとnvarcharの主な違いはこのように説明されます。
長文
varchar が可変長の非 Unicode を表すのに対し、nvarchar は可変長の Unicode データを表します。
最大長
MSSQL では、varchar は最大 8000 文字を格納できます。
しかし、MSSQLでは、nvarcharは最大4000文字を格納することができます。
したがって、記憶容量もvarcharとnvarcharの違いとなります。
バイト数
さらに、varcharとnvarcharのもう一つの違いは、varcharが1文字あたり1バイトであるのに対し、nvacrahrは1文字あたり2バイトであることである。
結論
まとめると、varcharとnvarcharはMSSQLのようなDBMSにおける2種類のデータ型です。
これらは、テーブルに格納するデータの種類を定義します。
varcharとnvarcharの違いは、varcharが可変長の非ユニコードデータ型であるのに対し、nvarcharは可変長のユニコードデータ型であることです。