Spu*_*ley 32
为了理解"允许空"的含义,您需要NULL了解它是什么,并理解它与零或空字符串不同.
NULL是SQL中的特殊值.它表示不存在的数据.这与空白的数据不同.
在MySQL中创建表时,它允许您指定是否允许使用字段NULL.如果指定"允许空",则可以NULL在这些字段中创建包含值的记录.
在某些情况下,这可能对您有用.例如,"是/否"字段可能是布尔值,但如果用户未指定其首选项,则可能需要设置NULL为指示此而不是默认为"是"或"否".
但在许多情况下,允许NULL可能会有问题.设置的字段NULL可能会在查询中产生意外结果,因为NULL在所有情况下都不遵循与其他值相同的规则.例如:如果查询上面的示例字段WHERE myfield != 1,您可能希望得到所有不等于1的记录的结果.但是NULL不会返回字段; 你需要为他们写一个特例.
NULL在执行JOIN某些结果没有要加入的记录的查询时,也会将其用作默认值.连接表中的未知字段都将设置为NULL.
通常,如果您不确定如何处理"允许空",则最安全的选项是将其设置为不允许空值.
有关详细信息,请参阅SQL中的NULL的Wikipedia条目.
希望有所帮助.