如何在 SQL 中使用 NOT NULL

一、SQL NOT NULL 语法

在这篇 SQL 文章中,您将学习如何在SQL语言中对列使用 NOT NULL。

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

如果任何列在表中被定义为 NOT NULL 约束,我们不能在不向列中添加值的情况下在表中插入新记录。

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

CREATE TABLE Table_Name  
(  
Column_Name_1 DataType (character_size of the column_1) NOT NULL,  
Column_Name_2 DataType (character_size of the column_2) NOT NULL,  
Column_Name_3 DataType (character_size of the column_3) NOT NULL,  
........,  
Column_Name_N DataType (character_size of the column_N) NOT NULL,  
)  ; 

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

当表已经存在时,以下语法将 NOT NULL 约束添加到列:

ALTER TABLE Table_Name ALTER COLUMN Column_Name datatype NOT NULL;  

二、SQL NOT NULL 使用步骤

如果要在创建表时使用 NOT NULL 约束,则必须按照以下步骤操作:

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

第 1 步:创建简单的新数据库

首先,您必须使用结构化查询语言创建一个新数据库。

以下查询创建 Fortis_Hospital 数据库:

CREATE Database Fortis_Hospital;  

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

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

CREATE TABLE Doctor_Info  
(  
Doctor_ID INT NOT NULL,    
Doctor_Name VARCHAR (100),    
Doctor_Specialist VARCHAR (80),    
Doctor_GenderVarchar (20),  
Doctor_Country Varchar (80)   
) ;  

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

CREATE TABLE Doctor_Info  
(  
Doctor_ID INT NOT NULL,    
Doctor_Name VARCHAR (100) NOT NULL,    
Doctor_Specialist VARCHAR (80) NOT NULL,    
Doctor_GenderVarchar (20) NOT NULL,  
Doctor_Country Varchar (80) NOT NULL   
) ;  

第 3 步:查看表结构

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

DESC Doctor_Info;  

输出结果为:

Field Type NULL Key Default Extra
Doctor_ID INT NO - NULL -
Doctor_Name INT NO - NULL -
Doctor_Specialist Varchar(20) NO - NULL -
Doctor_Gender Varchar(20) NO - NULL -
Doctor_Country INT N0 - NULL -

三、从表中删除 NOT NULL 约束

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

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

ALTER TABLE Table_Name MODIFY Column_Name Datatype [size] NULL;  

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

ALTER TABLE Doctor_Info MODIFY Doctor_Country Varchar[80] NULL; 

要检查上述 ALTER 查询的结果,您必须键入以下 DESC 命令,该命令描述了 Doctor_Info 表的结构:

DESC Doctor_Info;  

输出结果为:

Field Type NULL Key Default Extra
Doctor_ID INT NO - NULL -
Doctor_Name INT NO - NULL -
Doctor_Specialist Varchar(20) NO - NULL -
Doctor_Gender Varchar(20) NO - NULL -
Doctor_Country INT Yes - NULL -

正如我们在上面的 SQL 表中看到的,对于 Doctor Country 字段,NULL 列的值为 Yes,这表明 Doctor_Country 列将接受 NULL 值。

四、将 NOT NULL 约束添加到现有表

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

将 NOT NULL 约束添加到现有表的语法:

ALTER TABLE Table_Name MODIFY Column_Name Datatype [size] NOT NULL;  

以下 SQL 语句为 Doctor_Info 表定义了 NOT NULL 约束:

ALTER TABLE Doctor_Info MODIFY Doctor_Country Varchar[80] NOT NULL;  

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

DESC Doctor_Info;  

输出结果为:

Field Type NULL Key Default Extra
Doctor_ID INT NO - NULL -
Doctor_Name INT NO - NULL -
Doctor_Specialist Varchar(20) NO - NULL -
Doctor_Gender Varchar(20) NO - NULL -
Doctor_Country INT N0 - NULL -

热门文章

优秀文章