SQL为什么不能为空的数值输入是我没填也可以……

来源:百度知道 编辑:UC知道 时间:2024/07/04 09:08:34
insert into student values('0003','','')
数据库里是不许为空,可是我输入的也不是空格……却可以执行 - -
NULL那栏我没有打勾啊?!
我没打空格……
int 和 bit

知道了,那int 怎么解释呢?和int什么关系呢~

NULL的意思是"不知道"或者"不存在"
而你打空格,系统认为是字符,不符合NULL
所以就是可以的了~
======================================
你定义NOT NULL的那列的数据类型是啥?
======================================
你的insert into student values('0003','','')
BIT类型只接受0和1两种数据,说白了就是BOOL类型,而且除了0和1以外的数据都会被认为是1.SO... 明白了吧?~~

你的"这个符号被认为是1了,不是NULL...
======================================
你INSERT 之后 想必那个数字不是0003而是3吧?。。。如果你想输入0003,一定要把数据类型改为CHAR~

如果字段有not null的约束的话,会提示出错的!
你说的空在数据库里是NULL还是空格?
你使用的SQL语句
insert into student values('0003','','')
中''就是空格呀
如果你这么写的会就会出错

insert into student (列名) values('0003')
会出现 xx列 有not null约束的错误

你没定义成not null 当然可以添加咯。

null和空格''是不一样的,非空是不能为null