为什么有时将空值存到数据库却显示为0有时为空

本文探讨了在数据库中如何处理空值与0的问题。详细解释了不同数据类型(如int, char, varchar)在遇到空值时的表现,并区分了NULL与空字符串的概念。此外还介绍了在设置某字段是否允许为空时的不同行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么有时将空值存到数据库显示为0有时却为空

在表单中总会有一些选项是选填的,当用户不填的时候可将值null,或空字符串(常用)传到数据库,那么存到数据库一定是空值吗?

这和数据类型有关:

int(数值型)类型null用0表示,char和varchar就是null

  首先明白不可为空意思是:在数据库里填充数据时不可将值设置为null值,空的字符串不等于null

1:当某一项设置可以为空时:    未填 则  int类型默认为0  、其它字符类型(char,vachar)则默认为null

 2:当某一项设置不可为空时:意思是不能是null(不包括空字符串)

    如果数据是表单提交过来的,这一项,未填则填入数据库时默认变成空字符串,无论设置的是什么类型

    如果不是表单提交的(即在数据库里添加数据时)未填 对于mysql来说分两种情况:

   第一种:使用sql语句添加 例如 INSERT INTO student(name) VALUES(null); 如果name设置是不可为空则报错

   第二种:在phpmyadmin添加数据时 name项未填,则以空字符串添加 

PS:如果之前数据库某一项设置可以为空,并且有某条数据的这一项为null,此时修改此项变为不可为空会报错,

需要将为null的那条数据修改为其它值方可修改

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值