SQL NOT NULL 约束


SQL NOT NULL 约束表示该列不能包含 NULL 值。在创建表时,可以在列定义中使用 NOT NULL 约束来确保列没有 NULL 值。如果插入 NULL 值,则会引发错误。

语法

在创建表时,可以在列定义中使用 NOT NULL 约束来指定列不允许包含 NULL 值。语法如下:

CREATE TABLE table_name (
    column1 datatype NOT NULL,
    column2 datatype NOT NULL,
    ...
);

示例

例如,我们创建一个名为 “students” 的表,该表包含 “id”、“name” 和 “age” 三个列。“id” 列和 “name” 列不允许为空,但 “age” 列可以为空。示例如下:

CREATE TABLE students (
    id INT(11) NOT NULL,
    name VARCHAR(50) NOT NULL,
    age INT(11)
)

在这个示例中,我们定义了三列,“id” 列和 “name” 列均为 NOT NULL,“age” 列可以为空。

插入 NULL 值

当使用 INSERT INTO 语句向表中插入数据时,如果尝试插入一个 NULL 值到定义为 NOT NULL 的列中,则会收到错误消息。

例如,在上面的 “students” 表中,如果尝试向 “id” 或 “name” 列插入 NULL 值,则会引发错误。示例如下:

INSERT INTO students (id, name, age) VALUES (NULL, 'John', 18);

更新 NULL 值

如果已经将 NULL 值插入到定义为 NOT NULL 的列中,则可以使用 UPDATE 语句将其更新为非 NULL 值。

例如,如果 “students” 表中的 “age” 列中存在 NULL 值,可以使用 UPDATE 语句将其更新为非 NULL 值。示例如下:

UPDATE students SET age = 0 WHERE age IS NULL;

总结

在 SQL 中,NOT NULL 约束用于确保列不允许包含 NULL 值。当尝试插入 NULL 值到定义为 NOT NULL 的列中时,将会引发错误。如果已经将 NULL 值插入到定义为 NOT NULL 的列中,则可以使用 UPDATE 语句将其更新为非 NULL 值。