NULL 値
各行において、意味のある値が一部の列にはない場合があります。DB2® は、特殊な値の標識 (NULL 値) を使用して不明な値または欠落した値を表します。NULL 値とは一種の特殊な値であり、DB2 はデータがないことを意味しているものと解釈します。
何も指定しないと、DB2 はどの列にも NULL 値が含まれていることを許可します。ユーザーは、列に対して値を入れずに、表に行を作成できます。
NOT NULL 文節を使用すると、列に NULL 値があることを許可しません。 主キーは NOT NULL として定義する必要があります。
CREATE TABLE DEPT
(DEPTNO CHAR(3) NOT NULL,
DEPTNAME VARCHAR(36) NOT NULL,
MGRNO CHAR(6) ,
ADMRDEPT CHAR(3) NOT NULL,
PRIMARY KEY (DEPTNO) )
IN MYDB.MYTS;
特定の列にある不明値に対して NULL を許可するかどうかを決める前に、照会の結果に NULL がどのような影響を及ぼすかに注意する必要があります (以下を参照)。
- アプリケーション・プログラムでのヌル
NULL を使用すると、SQL ステートメント内のどの条件 (特別な IS NULL 述部を除く) も満足させることができません。DB2 は、非ヌル値とは異なる方法で NULL 値をソートします。NULL 値は、他の値のようには扱われません。例えば、NULL 値が指定の既知の値よりも大きいかどうかを DB2 に判別させると、その結果は UNKNOWN となります。この同じ既知の値よりも NULL 値が小さいかどうかを DB2 に判別させると、その結果は依然として UNKNOWN となります。
特定の列に対して UNKNOWN の値が戻されることを許容しない場合、NULL の代わりにデフォルト値を定義することができます。プログラマーは、デフォルト値を扱う方法には精通しています。
- 結合操作における NULL
NULL は結合操作で特別な扱いが必要です。 NULL 値が含まれている可能性のある列に対して結合操作を行う場合、外部結合の使用を検討してください。