SQL 如何使用NOT NULL

SQL 如何使用NOT NULL

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

什么是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;

如果您想在表创建时使用NOT NULL约束,请按照以下步骤操作:

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

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

首先,您需要在结构化查询语言中创建一个新数据库。

以下查询将创建Fortis_Hospital数据库:

CREATE Database Fortis_Hospital;

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

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

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查询添加了Doctor_Info表的每个列的NOT NULL约束:

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列中删除非空约束:

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语句将NOT NULL约束条件定义到Doctor_Info表上:

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 -

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程