mysql为什么数据库有默认值结果为null?
在MySQL中,字段设置了默认值,并且字段可空的情况下,在插入数据时,如果此字段传入的是“NULL”,则保存为NULL;如果此字段传入的是“DEFAULT”,则保存为默认值。
为什么会这样呢,试想一下,假如需要此字段的数据保存为NULL的时候,传入了NULL,而结果又为默认值,是不是就会出现问题。所以传入NULL,其结果就为NULL。
这里举个例子,如果一张表中有3个字段,分别是姓名、年龄、性别,其中性别设置了默认值,那么性别保存为默认值的SQL语法为“INSERT INTO USER VALUES ('张三', 20, DEFAULT)”,保存为NULL的SQL语法为“INSERT INTO USER VALUES ('张三', 20, NULL)”。
mysql null可以用于比较吗?
是的,MySQL中的null可以用于比较。当使用比较操作符(例如“=”、“<”、“>”等)进行比较时,如果其中一个操作数为null,则结果为null。
如果要验证一个表中是否存在null值,则需要使用IS NULL或IS NOT NULL操作符。在使用复杂查询时,需要小心处理null值,以避免出现未知的结果。
请问mysql的字段值为null时,该列占用存储空间吗?
c语言里的变量存储机制和数据库的是不同的,MYSQL中的解释:“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”可见为了表示某个字段是否为空是需要额外开辟空间存储Null值,而在C语言中空值'不占用存储空间。
不仅如此,不使用NULL可以提高索引效率,因为树形索引结构中将NULL也视作一般数据节点。
mysql像这种语句,每个字段要加个备注,语句怎么写creat table (`id` int(11) NOT NULL auto_increment?
加`是为了使用mysql的保留字和关键字。比如要创建表select,但是select是关键字,系统不会让你创建,但加上`你就可以创建了,当然用的时候也要加上`的。

