- MySQL数据库管理与开发实践教程 (清华电脑学堂)
- 程朝斌
- 618字
- 2025-03-09 06:50:49
4.4 非空约束
非空约束是最简单的约束,用来限制数据填写的完整性。被设置了非空约束的字段,在添加数据时必须要有数据,不能够省略。
非空约束使用NOT NULL语句,而允许为空的字段可以使用NULL关键字。本节介绍非空约束的使用。
4.4.1 创建非空约束
非空约束限制该字段中的内容不能为空,但可以是空白字符串或0。非空约束与其他约束都用来限制数据,但其作用和使用方式大不相同。一个表只能够设置一个主键(或主键组),但非空约束不受限制,而且每个字段的非空约束之间互不影响。
对于字段来说,要么允许添加数据为空;要么不允许添加数据为空。因此对于字段是否非空只有两种可能。
与其他约束不同的是,无论字段是否为空,都需要在创建时指出。若允许为空则使用NULL;否则使用NOT NULL来定义。如范例6创建ftype表时,第一个字段使用NOT NULL来定义,剩下的字段使用NULL来定义。
非空约束的创建、修改都可以使用MySQL Workbench来完成,其操作方法和表的创建和修改的方法一样,这里不再详细介绍。
而使用SQL语句创建非空约束,只是在字段的数据类型之后添加NOT NULL;否则使用NULL来定义允许为空的字段。这里不再详细介绍。
4.4.2 修改非空约束
非空约束是没有删除操作的,若字段不再需要进行非空约束,只需要将其设置为允许为空即可。而非空约束的修改只是将字段在NOT NULL和NULL这两种状态之间进行切换。
对非空约束的修改与对字段类型的修改方法一样,如修改fruitshop.fruits表的fname字段为非空约束字段,代码如下。
ALTER TABLE 'fruitshop'.'fruits' CHANGE COLUMN 'fname' 'fname' VARCHAR(45) NOT NULL ;
而修改fruitshop.fruits表的fname字段为允许为空的字段,代码如下。
ALTER TABLE 'fruitshop'.'fruits' CHANGE COLUMN 'fname' 'fname' VARCHAR(45) NULL ;