SQL NOT NULL:非空约束

 
默认情况下,表的字段可以包含 NULL 值,如果您不希望某个字段出现 NULL 值,那么可以在该字段上添加 NOT NULL 约束(非空约束),此时就必须给该字段指定一个具体的值,不能留空。

注意,NULL 不等于没有数据,而是表示数据是未知的。

示例

下面的 SQL 语句将创建一个名为 website 的新表,该表包含七个字段,其中五个字段不接受 NULL 值,它们分别是 id、name、age、alexa 和 country:
CREATE TABLE website (
    id      INT              NOT NULL   AUTO_INCREMENT,
    name    VARCHAR(20)      NOT NULL,
    url     VARCHAR(30),
    age     TINYINT UNSIGNED NOT NULL,
    alexa   INT UNSIGNED     NOT NULL,
    uv      FLOAT                       DEFAULT '0',
    country CHAR(3)          NOT NULL   DEFAULT '',
    PRIMARY KEY (`id`)
);

如果已经创建了 website 表,也可以使用 ALTER TABLE 语句将 NOT NULL 约束添加到某个字段,例如:
ALTER TABLE website
MODIFY url VARCHAR(30) NOT NULL;
以上语句在 Oracle 和 MySQL 数据库上运行通过。