mysql中NULL值表示“没有值”,它跟空字符串""是不同的
例如,执行下面两个插入记录的语句:
insert into test_table (description) values (null);
insert into test_table (description) values ('');
执行以后,查看表的值,下面第2和第3行是执行前面两条语句生成的:
可以看到,两条插入语句都在表中description列插入了值,但是第1条语句插入的是NULL,第2条语句插入的是空字符串。
有时候可能会有误解:认为一个列定义为NOT NULL,就不能插入空字符串。
其实,一个列定义为NOT NULL,是可以插入空字符串的,因为空字符串是NOT NULL。
下面语句测试空字符串(‘’)和NULL:
要测试NULL,用 IS NULL和IS NOT NULL操作符
例如:
不能使用数学比较符号来测试NULL
不能使用数学比较符号,例如>、<、或者<>来测试NULL。因为,任何的数学比较符号和NULL相比的结果都是NULL,因此从这个比较中,得不到任何有意义的结果。
例如:
在MySQL,0或者NULL代表false,其它值代表true
在MySQL,0或者NULL代表false,其它值代表true。