1. CHAR の長さは固定されていますが、VARCHAR2 の長さは変更できます。たとえば、文字列「abc」を格納する場合、CHAR (20) の場合、格納する文字は 20 バイト (17 個のヌル文字を含む) を占めることになります。同じ VARCHAR2 (20) は 3 バイトの長さのみを占め、20 は最大値にすぎません。格納する文字が 20 未満の場合は、実際の長さに応じて格納されます。
2. CHAR は VARCHAR2 よりもわずかに効率的です。
3.現在、VARCHAR は VARCHAR2 の同義語です。業界標準の VARCHAR 型は空の文字列を格納できますが、Oracle はそれを行いません。ただし、将来的にはそうする権利を留保します。 Oracle は、VARCHAR2 データ型を開発しました。この型は、データベースの varchar 列に空の文字列を格納できる機能を変更して、NULL 値を格納します。下位互換性が必要な場合は、VARCHAR ではなく VARCHAR2 を使用することをお勧めします。
CHAR をいつ使用する必要があり、どのような場合に varchar2 を使用する必要がありますか?
CHAR と VARCHAR2 は相反する一体であり、両者は補完的です
VARCHAR2 は CHAR よりもスペースを節約しますが、CHAR よりも若干効率が劣ります。 つまり、効率を高めるためには、ある程度のスペースを犠牲にする必要があります。データベース設計において、私たちがよく「効率性のためのスペースのトレード」と呼ぶものです。
VARCHAR2 は CHAR よりもスペースを節約しますが、VARCHAR2 列が頻繁に変更され、変更されるデータの長さが毎回異なる場合、「行の移行」現象が発生し、冗長 I/O が発生します。これは避けるべきです。この場合、VARCHAR2 の代わりに CHAR を使用することをお勧めします。 (王朝ネットワークwanchao.net.cn)