SQL NOT NULL 非空约束
时间:2018-11-15 17:50:17 来源:igfitidea点击:
在本教程中,我们将学习如何使用SQL NOT NULL约束(非空约束)来防止向列插入NULL空值。
NOT NULL约束用于阻止将空值NULL插入到字段列中。在数据库世界中,NULL表示未知或丢失的信息。
当一个NOT NULL约束应用于一个列时,如果您试图向该列插入一个NULL值或从该列更新NULL值,那么数据库引擎将拒绝该更改并报错。
创建SQL NOT NULL约束
创建NOT NULL约束的最常见方法是通过CREATE TABLE语句中的列定义进行创建。
例如,下面的语句创建了一个名为authors的新表:
CREATE TABLE authors( author_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, author_name VARCHAR(40) NOT NULL, bio VARCHAR(400) NULL )
我们对author_id和author_name两列应用了NOT NULL约束。
如果您想要给一个现有表的列添加一个NOT NULL约束,则必须使用ALTER TABLE语句,如下所示:
ALTER TABLE table ALTER COLUMN column NOT NULL;
例如,在Microsoft SQL Server中,我们可以这样为bio列中添加一个NOT NULL约束:
ALTER TABLE authors ALTER COLUMN BIO VARCHAR(400) NOT NULL;
而在MySQL中的语法是:
ALTER TABLE authors MODIFY BIO VARCHAR(400) NOT NULL;
在Oracle中的语法是:
ALTER TABLE authors MODIFY bio NOT NULL
删除SQL NOT NULL约束
要删除现有的NOT NULL约束,同样是使用ALTER TABLE语句。
例如,要删除bio列上的NOT NULL约束,可以使用以下语句:
在SQL SERVER中:
ALTER TABLE authors ALTER COLUMN bio varchar(400) NULL
在MySQL中:
ALTER TABLE authors MODIFY BIO VARCHAR(400) NULL;
在Oracle中:
ALTER TABLE authors MODIFY (bio NULL)