NULL 值就是没有值或缺值。允许 NULL 值的列也允许在插入行时不给出该列的值。不允许 NULL 值的列不接受该列没有值的行,换句话说,在插入或更新行时,该列必须有值。
每个表列或者是 NULL 列,或者是 NOT NULL 列,这种状态在创建时由表的定义规定。请看下面的例子:
输入:
create table orders ( order_num int NOT NULL AUTO_INCREMENT, order_date datetime NOT NULL, cust_id int NOT NULL, PRIMARY KEY (order_num) )ENGINE = InnoDB;
分析:这条语句创建本书中所用的 orders 表。 orders 包含3个列,分别是订单号、订单日期和客户ID。所有3个列都需要,因此每个列的定义都含有关键字 NOT NULL 。这将会阻止插入没有值的列。如果试图插入没有值的列,将返回错误,且插入失败。
下一个例子将创建混合了 NULL 和 NOT NULL 列的表:
输入:
create table vendors ( vend_id int NOT NULL AUTO_INCREMENT, vend_name char(50) NOT NULL, vend_address char(50) NULL, vend_city char(50) NULL, vend_state char(5) NULL, vend_zip char(10) NULL, vend_country char(50) NULL, PRIMARY KEY (vend_id ) )ENGINE = InnoDB;
分析:这条语句创建本书中使用的 vendors 表。供应商ID和供应商名字列是必需的,因此指定为 NOT NULL 。其余5个列全都允许 NULL 值,所以不指定 NOT NULL 。 NULL 为默认设置,如果不指定 NOT NULL ,则认为指定的是 NULL 。
mysql null和空的区别
理解 NULL 不要把 NULL 值与空串相混淆。 NULL 值是没有值,它不是空串。如果指定 '' (两个单引号,其间没有字符),这在 NOT NULL 列中是允许的。空串是一个有效的值,它不是无值。 NULL 值用关键字 NULL 而不是空串指定。
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com