我遇到的每个数据库都会以描述它们的方式对待NULL。当列接受NULL值时,如果不在INSERT上提供值,则该值默认为NULL。我相信这是ANSI标准行为的一部分。
至于指定“ NULL”本身。这是一个优先事项。该标准确实说, 除非 指定了NOT NULL(在数据定义语言的级别), 否则 列允许NULL
。因此,NULL本身是不必要的,并且您有第四个等效的选项:
columnname type
NULL通过ANSI标准完全嵌入到SQL语言中。您的第三个选项是最明确的,但它看起来也有点不寻常。
如果您打算在整个系统中保持高度一致,那么我会走自己的路。对于每个表中的每一列,请具有NULL或NOT
NULL。对于所有采用默认值的列,请使用DEFAULT语句。
但是,不要指望与您一起工作的其他人(现在或将来)会很容易地遵循此示例。在这种情况下,许多人更喜欢第四个选项,因为它只需要较少的输入,并且是所有(或几乎所有)SQL语言的行为方式。



