null在这里意味着什么?

时间:2011-02-15 06:36:29

标签: sql null

此脚本中的null是什么意思?这是否意味着该列可以具有空值,还是意味着该列的默认值为nul?

    CREATE TABLE product ( product_nbr int NOT NULL,
    product_name varchar(40) NOT NULL,
    product_status_code char(10) NOT NULL,
    start_date date NULL,
    end_date date NULL,
    raw_material_cost decimal(12,2) NULL,
    primary key (product_nbr)
    )

2 个答案:

答案 0 :(得分:8)

这意味着该列接受空值。这与您在其他列中看到的NOT NULL声明正好相反,实际上是默认声明。

对于列的默认值为NULL,声明为DEFAULT NULL。当然,这反过来意味着该列接受空值。

答案 1 :(得分:2)

它基本上意味着两者都是因为一列允许NULL并且没有为列设置默认值。如果插入到表中并且未指定值且该列没有默认值,则该值将为null(未定义)。如果该列设置为NOT NULL并且没有默认值,则会收到错误,因为该列不允许为NULL。