表列内の NULL 値

各行において、意味のある値が一部の列にはない場合があります。 Db2 特別な値のインジケータであるヌル値を使用して、不明または欠落している値を表します。 NULL 値は、Db2 がデータが存在しないことを意味すると解釈する特殊値です。

特に指定がない場合、 Db2 では、どの列にもNULL値を含めることができます。 ユーザーは、列に対して値を入れずに、表に行を作成できます。

NOT NULL 文節を使用すると、列に NULL 値があることを許可しません。 主キーは NOT NULL として定義する必要があります。

汎用プログラミングインターフェース情報の開始。
例えば、DEPT 表の表定義は、いつ NULL 値を使用できるかを指定します。 NULL を使用できるのは、以下の例の場合は MGRNO 列に対してだけである点に注意してください。
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 にNULL値が既知の値よりも大きいかどうかを尋ねた場合、答えは「不明」となります。 Db2 に、NULL値が同じ既知の値よりも小さいかどうかを尋ねた場合、答えは依然として「不明」となります。

特定の列に対して UNKNOWN の値が戻されることを許容しない場合、NULL の代わりにデフォルト値を定義することができます。 プログラマーは、デフォルト値を扱う方法には精通しています。

結合操作での NULL
NULL は結合操作で特別な扱いが必要です。 NULL 値が含まれている可能性のある列に対して結合操作を行う場合、外部結合の使用を検討してください。