非空约束 [MySQL][数据库]

非空约束(not null)的使用

注意: 默认情况下所有的类型的值为NULL,包括INT,FLOAT等数据类型默认情况下也为null
非空约束只能出现在表对象的列上,也就是只能定义为列级约束,并且非空约束不可以定义在表对象的所有列的后面,也就是不能定义为表级约束

注意: 空字符串’'不等于null, 0也不等于null

那么如何添加非空约束?

我们可以通过两种方式添加非空约束:

方式一 : 在CREATE TABLE是添加约束

CREATE TABLE test1(
id INT NOT NULL,
last_name VARCHAR(15) NOT NULL,
    email VARCHAR(25),
    salary DECIMAL(10,3)
);
  • 这里我们给test1表中的id和last_name字段添加了非空约束
那么添加了非空约束之后有什么作用?

我们通过两个例子来说明添加了非空约束之后的作用

INSERT INTO test1(id,last_name,email,salary)
VALUES(2,NULL,'tom1@126.com',3400);
  • 这个时候会报错,因为这个时候我们将test1表中的last_name字段添加了非空约束,这个时候我们在添加数据的时候last_name的值就一定不能为null,这里显式的给last_name赋值为null,显然这个时候就会报错(column ‘last_name’ cannot be null)
INSERT INTO test1(id,email)
VALUES(2,'abc@126.com');
  • 这里也会报错,因为我们将test1表中的last_name字段设置添加了非空约束,这个时候添加数据的时候last_name的值就一定不能为null,这里我们虽然没有显式的为last_name字段赋值,但是这个时候我们没有提供默认值约束,这个时候添加数据的时候就是赋默认值null,那么这个时候也就自然会报错了

方式二 : 在ALTER TABLE时添加约束

这里我们也是通过举例的方式来说明如何在ALTER TABLE的时候添加非空约束

ALTER TABLE test1
MODIFY email VARCHAR(15) NOT NULL;
  • 这里就是给test1表中的email字段添加非空约束
  • 注意: 如果在给email字段添加非空约束的时候发现表中email字段的值已经有为NULL的了,那么这个时候我们就要将表中为NULL的email字段内容全部改为非空(不是NULL)之后才可以添加非空约束,直接添加会出错

那么我们如何删除约束?

我们在ALTER TABLE时删除约束
ALTER TABLE test1
MODIFY email VARCHAR(25) NULL;
总结: 添加约束就是修改修改字段为NOT NULL, 删除约束就是修改字段为NULL
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值