字面理解,null就是无效的;无价值的;在编程中,变量以null结尾,表示其后没有可用的数据,数据读取在此结束。null在数据库中表示不知道(Unknown) 的数据,主要有3种意思:知道数据存在,但不知道具体值;不知道数据是否存在;数据不存在。
在数据库中,null是某个字段中完全没有值,并且表示字段值未知。Null 与数字字段,文本字段或空间值的零值不同。null表示尚未存储数据库字段值。
无法将null与值进行比较。例如,如果将查询定向到Customer_Addresses表以检索没有电子邮件地址的所有客户,则无法按如下方式编写结构化查询语言(SQL)查询:SELECt * FROM Customer_ Addresses WHERe Email_Address = null。相反,为了不引入与 null 的比较,查询必须按如下方式编写:SELECt * FROM Customer_ Addresses WHERe Email_Address 为 null。
当计算包含空值的列中的值时,结果中不包括空值。例如,Customer_ Addresses 表中有200个客户,而 Email_Address 列中有 30 个客户。使用Email_Address列进行计数将返回 170 的结果。
在C中,任何类型的两个空指针都保证比较相等。预处理器宏NULL被定义为实现定义的空指针常量,它在C99中可以可移植地表示为0隐式或显式转换为类型的整数值void*(指向void的指针)。C标准没有说空指针与指向内存地址0 的指针相同,尽管在实践中可能就是这种情况。解引用空指针是C中的未定义行为,并且允许符合要求的实现假定任何被解除引用的指针不为空。
在C 中,虽然继承了C的NULL宏,但空指针常量优先解释为整型0而不是指针值,这极容易导致某些错误。故C 11引入了一个显式nullptr常量来代替。
java中的null是一个关键字,通常用来声明一个空引用。



