DB2中的Null被定义为无。这是一个未知值。如果要在任何列中限制NULL值,则应在CREATE TABLE中使用“ NOT NULL”参数定义该列。
“ NOT NULL”将迫使用户输入该列的值。但是,如果我们不想为该列提供任何值,我们还可以放置“ WITH DEFAULT”参数,如果用户没有为“ NOT NULL”列提供任何值,则该参数将允许DB2放置缺省值。
例如,如果我们有一个列INVOICE_ID,该列不应该为null,并且,如果用户没有为此列提供任何值,我们希望DB2在该列中插入空格,那么我们将在下面定义该列-
CREATE TABLE ORDERS (ORDER_ID CHAR(15) NOT NULL, ORDER_DATE DATE, INVOICE_ID CHAR(15), NOT NULL WITH DEFAULT ORDER_TOTAL DECIMAL(9,2), TRANSACTION_ID CHAR(15), PRIMARY KEY(ORDER_ID), IN DB4ES01;
列INVOICE_ID用数据类型CHAR定义,并且DB2为CHAR所采用的缺省值为空格。因此,在上述情况下,我们已将INVOICE_ID列定义为NOT NULL,并且当未为该列提供显式值时,它将默认值作为空格。