如何使用 SQL 中的 NOT NULL

2024 年 8 月 29 日 | 阅读 3 分钟

在本篇 SQL 文章中,您将学习如何在结构化查询语言 (SQL) 中将 NOT NULL 应用于列。

什么是 NOT NULL 约束?

NOT NULL 是 SQL 中的一种约束,它不允许您在指定的列中插入 NULL 值。

如果表中的任何列被定义为 NOT NULL 约束,那么在插入新记录时,必须为该列提供值。

以下语法在创建表时将 NOT NULL 约束添加到列中

我们可以在一个 SQL 表中为一列或多列定义 NOT NULL 约束。

以下语法在表已存在时将 NOT NULL 约束添加到列中

如果要使用 NOT NULL 约束,请按照以下步骤操作:

  1. 创建新数据库
  2. 创建新表并添加 NOT NULL
  3. 查看表结构

步骤 1:创建简单的数据库

首先,您需要创建一个新的数据库。

以下查询创建了 Fortis_Hospital 数据库

步骤 2:创建新表并添加 NOT NULL

以下查询在 Fortis_Hospital 数据库中创建 Doctor_Info 表,并将 NOT NULL 约束添加到该表的 Doctor_ID 列

以下 CREATE TABLE 查询将 NOT NULL 约束添加到 Doctor_Info 表的每一列

步骤 3:查看表结构

以下查询描述了 Doctor_Info 表的结构

输出

字段类型NULL默认额外
Doctor_IDINT-NULL-
Doctor_NameINT-NULL-
Doctor_SpecialistVarchar(20)-NULL-
Doctor_GenderVarchar(20)-NULL-
Doctor_CountryINTN0-NULL-

从表中删除 NOT NULL 约束

ALTER 语句中的 MODIFY 关键字允许数据库用户从表的列中移除 NOT NULL 约束。

如果要从 SQL 表中删除 NOT NULL 约束,可以使用以下语法进行删除

以下查询从 Doctor_Info 表的 Doctor_Country 列中删除 NOT NULL

要检查上述 ALTER 查询的结果,您需要键入以下 DESC 命令,它将描述 Doctor_Info 表的结构

输出

字段类型NULL默认额外
Doctor_IDINT-NULL-
Doctor_NameINT-NULL-
Doctor_SpecialistVarchar(20)-NULL-
Doctor_GenderVarchar(20)-NULL-
Doctor_CountryINT是的-NULL-

如上 SQL 表所示,Doctor_Country 字段的 NULL 列值为 Yes,这表明 Doctor_Country 列将接受 NULL 值。

向现有表添加 NOT NULL 约束。

任何数据库用户都可以使用 SQL ALTER TABLE 语法轻松地向现有表添加 NOT NULL 约束。

向现有表添加 NOT NULL 约束的语法

以下 SQL 语句将 NOT NULL 约束定义到 Doctor_Info 表

要检查上述 ALTER 查询的结果,您需要键入以下 DESC 命令来查看 Doctor_Info 表的结构

输出

字段类型NULL默认额外
Doctor_IDINT-NULL-
Doctor_NameINT-NULL-
Doctor_SpecialistVarchar(20)-NULL-
Doctor_GenderVarchar(20)-NULL-
Doctor_CountryINTN0-NULL-