在数据库字段为not null中为什么可以插入空值?

createtablemember(numbervarchar(20)notnull)上面标为什么可以插入:inseertintomembervalues('')... create table member (number varchar(20) not null)
上面标为什么可以插入:
inseert into member values('')
展开
 我来答
59分粑粑分享生活
高粉答主

2020-03-06 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119749

向TA提问 私信TA
展开全部

这是因为,在SQL SERVER中NULL跟''是完全不一样的,NULL表示未知,没有类型可言,而''是有类型的,表示一个空的字符串

所以有not null约束的列是可以插入''的。而且,有时候做判断的时候可能某个列既有NULL值又有''值,这时候就经常用 where isnull(列名,'')=''进行判断。然而在ORACLE中,''是等同于NULL值进行处理的,这时候有not null约束的列就不能插入''了。

扩展资料:

comment的作用是为表创建注释。 not null表示该字段不允许为空。 这是一条固定的声明,即为表创建的注释不允许为空。 如果将其更改为comment null,则表示其可以为空。

数据库管理系统是数据库系统的核心组件,主要完成数据库的操作和管理功能,实现数据库对象的创建,数据库存储数据的查询,添加,修改和删除操作, 以及数据库的用户管理和权限管理等。

我在哪我是谁X
推荐于2017-10-14 · TA获得超过1620个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:244万
展开全部
在SQL SERVER中NULL跟''是完全不一样的,NULL表示未知,没有类型可言,而''是有类型的,表示一个空的字符串.所以有not null约束的列是可以插入''的. 而且有时候做判断的时候可能某个列既有NULL值又有''值,这时候就经常用 where isnull(列名,'')=''进行判断;

然而在ORACLE中,''是等同于NULL值进行处理的,这时候有not null约束的列就肯定不能插入''了.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
默然0012
2010-07-26 · TA获得超过120个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:167万
展开全部
NOT NULL就是说这个字段必须有值,那怕是一个''的值。NULL是什么都没有,''是一个空字符串。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jivam
2010-07-26 · TA获得超过877个赞
知道小有建树答主
回答量:67
采纳率:100%
帮助的人:31.8万
展开全部
因为 null != ""

"" 表示空字符串
NULL 表示什么都没有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
babykang521
2010-07-26 · TA获得超过371个赞
知道答主
回答量:313
采纳率:0%
帮助的人:187万
展开全部
空值实际不是空的,空!=null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式