空字符串与NULL值的区别

“Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。”请问... “Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。”

请问这里“空字符串”与NULL值是一样的?

谢谢!
'一个空格'这个不算是空值?
另外,”select 1 from dual where null=null;当然就没有记录了“为什么没有记录?是说null不能做=判断?
展开
 我来答
岁月不及你动人
2018-04-11 · TA获得超过1.1万个赞
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:3.4万
展开全部

字符串与NULL值的区别在于:

空字符串是"",会创建一个对象,内容是“”,有内存空间。
而null,不会创建对象,没有内存空间,所对应的变量只是一个引用

  • 空字符串是唯一在字母表Σ上,没有字符的字符串,标记为ε或λ。空字符串的长度为0。空字符串在内存中占一个字节。

  • Null 是一特殊指标值(或是一种物件参照 reference)表示这个指标并不指向任何的物件。

ThinkIBM
推荐于2018-02-23 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5475万
展开全部
你可以这么理解
空字符串:已经分配了存储空间,但是没有存储东西
NULL:没有分配存储空间
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mdarave
2010-12-10 · 超过12用户采纳过TA的回答
知道小有建树答主
回答量:56
采纳率:100%
帮助的人:0
展开全部
区别大了。
name==null 是判断name有没有内存空间。
"".equals(name) 是判断name的内存空间中的值是不是空字符串。

没有内存空间的话是不能对变量或对象进行操作的。会出异常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
掛唸逦
2010-12-10
知道答主
回答量:38
采纳率:0%
帮助的人:19.4万
展开全部
空字符串:已经分配了存储空间,但是没有存储东西
NULL:没有分配存储空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
719366461
2017-07-09 · TA获得超过3.6万个赞
知道大有可为答主
回答量:3.6万
采纳率:22%
帮助的人:2190万
展开全部
在数据库系统中,空值是(什么也没有)。
解释:
所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用=,而要用IS关键字。
空 (NULL)
值表示数值未知(在实际意义中,如果使用null,就是代表变量值是未知的,比如手机号码设为null,说明不知道手机号码是什么)。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。
在写入数据的时候,空字符串也是一个确定的值,所以就算定义了 NOT NULL 也可以被写入。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式