CHARとVARCHAR2の違いとは?使い分けや文字列の注意点もSEがわかりやすく解説
ライター/久保田みく
システムエンジニア歴11年、2児の母です。新しい知識を学ぶことが大好きなので、ITはもちろん、それ以外の分野についても分かりやすく解説します。得意分野は、IT、食生活、美容、気象学、育児です。
CHARとVARCHAR2の違いとは?
image by iStockphoto
データ型とはデータの種類のことです。文字型、数値型など複数存在します。CAHR型、VARCHAR2型は、OracleDBで文字列データを格納するときに使用するデータ型です。まずはそれらの違いについて、3つピックアップして説明します。
1.格納されるデータサイズ
CHARとVARCHAR2の一番の違いは、CHARが固定長のデータ型、VARCHAR2が可変長のデータ型であるという点。
固定長というのは、格納するデータサイズにかかわらず、表作成時に定義したサイズで一定ということです。例えばCHAR(5)が定義された列に「abc」という3バイトを格納する場合、固定長だと後ろに2バイトの空白が追加されて「abc 」という5バイトのデータが格納されます。
一方、可変長というのは、格納するデータのサイズに応じてサイズが変わるということです。例えばVARCHAR2(5)が定義された列に「abc」という3バイトを格納する場合、「abc」という3バイトのデータが格納されます。
2.定義可能なバイト数
CHAR型とVARCHAR2型では列に定義可能な最大のバイト数が異なります。CAHR型は2000バイト、VARCHAR2型は4000バイトです。
3.バイト数定義の省略
CHAR型はバイト数の指定を省略することが可能です。省略した場合、1が設定されます。一方、VARCHAR2型はバイト数の指定を省略することができません。省略した場合、エラーが表示されます。
\次のページで「CHARとVARCHAR2を使用するメリットとデメリット」を解説!/