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 值。