如何在 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 约束,则必须按照以下步骤操作:
- 创建新数据库
- 创建一个新表并添加 NOT NULL
- 查看表结构
第 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 | - |
热门文章
优秀文章