Sql 简明教程
SQL - NOT NULL Constraint
在表中,列通常默认情况下可以接受 NULL 值。但是,如果您想确保特定列不包含 NULL 值,则需要在该列上添加 NOT NULL 约束/条件。
The SQL NOT NULL Constraint
SQL 中的 NOT NULL 约束用于确保表中的列不包含 NULL(空)值,并且防止尝试使用 NULL 值插入或更新行。
通常,如果我们在向表中插入数据时未向特定列提供值,则默认情况下它会被视为 NULL 值。但是,如果我们在列上添加 NOT NULL 约束,它将强制在数据插入期间必须为该列提供一个值,并且尝试插入一个 NULL 值会导致约束冲突错误。
Creating NOT NULL Constraint On a Table
要在表的列上添加 NOT NULL 约束,我们只需在列定义中在列的数据类型后添加关键字“NOT NULL”即可。
Example
首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表:
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (20, 2),
PRIMARY KEY (ID)
);
让我们使用以下 INSERT 查询向上面创建的表中插入一些值:
INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', '32', 'Ahmedabad', 2000),
(2, 'Khilan', '25', 'Delhi', 1500),
(3, 'Kaushik', '23', 'Kota', 2500),
(4, 'Chaitali', '25', 'Mumbai', 6500),
(5, 'Hardik','27', 'Bhopal', 8500),
(6, 'Komal', '22', 'Hyderabad', 9000),
(7, 'Muffy', '24', 'Indore', 5500);
表将按如下所示创建 -
ID |
NAME |
AGE |
ADDRESS |
SALARY |
1 |
Ramesh |
32 |
Ahmedabad |
2000.00 |
2 |
Khilan |
25 |
Delhi |
1500.00 |
3 |
Kaushik |
23 |
Kota |
2000.00 |
4 |
Chaitali |
25 |
Mumbai |
6500.00 |
5 |
Hardik |
27 |
Bhopal |
8500.00 |
6 |
Komal |
22 |
Hyderabad |
4500.00 |
7 |
Muffy |
24 |
Indore |
10000.00 |
Removing a NOT NULL Constraint From the Table
在 SQL 中,要移除现有表中列的 NOT NULL 约束,我们需要使用 ALTER TABLE 语句。使用此语句,我们可以修改列的定义,即更改现有列的名称、数据类型或约束。
移除列上的 NOT NULL 约束的一种方法是将其更改为 NULL。
Syntax
以下是在 MySQL 数据库中移除表中非空约束的语法:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype NULL;
这里,
-
table_name 是包含我们要修改的列的表名。
-
column_name 是具有要移除的 NOT NULL 约束的列名。
-
datatype 是列的数据类型。
Adding a NOT NULL Constraint to the Existing Table
在上一部分中,我们通过使用 ALTER TABLE 语句更改列的定义来移除 NOT NULL 约束。同样,我们可以使用 ALTER TABLE 语句将 NOT NULL 约束添加到现有的表中的列。
Syntax
以下是向 MySQL 数据库中的现有列添加 NOT NULL 约束的 SQL 语法:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype NOT NULL;
Example
假设先前创建的表 CUSTOMERS ,让我们使用以下查询修改 ADDRESS 列,以确保它不允许使用空值:
ALTER TABLE CUSTOMERS MODIFY COLUMN ADDRESS CHAR(25) NOT NULL;