sql server 2000 null 与 ''的区别 在数据库里面,如果字段A不插入数据,为null,与插入''的话在存储空间上有什么区别,希望答案能详细一些,TKS... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看过一些别人的回答:"一个在堆里分配了存储空间,另一个没有分配存储空间" 不知是否正确?null是否不需要存储空间的? http://topic.csdn.net/u/20090318/10/0a136514-a2f6-49f8-9525-69845e7608e9.html?1172983039 char/nchar等定义的数据类型,一定会占用空间的。但是vchar/varchar等不等长数据,好象不会占用空间的。好象论坛上有高手做过测试。 我只知道从规范上来说 一般在字段不要为NULL最好能建表时候填默认值为最好 --轉老大原話 /* 如果你是char/nchar这类定长的类型, 那不用说, 肯定占用. 如果你是其他数据类型, 则不占用空间. 但要注意, 即使记录中的每个列都是NULL, 记录本身也要一个地址或者指针之类, 也会有空间开销. */ 结论是定长null占用空间,不定长null不占用空间。 定长一旦表结构确定,每页存储记录数固定,不定长则不固定。 定长在update中的性能要高于不定长(个人觉得是远远高于,但是没有测试数据不敢说话) 不定长因为字段从较长望 较短的update情况下会出现差值引起的空间的浪费;而另外因为null不占空间,当null变为非null以及从短望长的update中都会出现整条数据位置变化,原来的位置空间被抛弃,而引起较大的空间浪费。 定长null占用空间,不定长null不占用空间 '' = '' ; null != null ; null is null;null 表示空值(空字符、数字、时间等); ''表示空串 NULL不等于任何值if null=''select 1else if isnull(null,'')=''select 2else select 3--结果为2---------------------select len(convert(char(10),''))select len(convert(char(10),null)) ----------- 0(所影响的行数为 1 行) ----------- NULL(所影响的行数为 1 行) ''是一个具体的值NULL表示没有值 轉剪剪的.-------- 从char和varchar的测试中可以得到以下结论,感兴趣的朋友可以测试其他类型 最后的结论是定长占用空间,不定长不占用空间。 定长一旦表结构确定,每页存储记录数固定,不定长则不固定。 定长在update中的性能要高于不定长(个人觉得是远远高于,但是没有测试数据不敢说话) 不定长因为字段从较长望 较短的update情况下会出现差值引起的空间的浪费;而另外因为null不占空间,当null变为非null以及从短望长的update中都会出现整条数据位置变化,原来的位置空间被抛弃,而引起较大的空间浪费。 null是空的,未在磁盘中分配空间,''是空字符串,有分配的 关于数据库实体关系的提问 谁要是用存储过程返回数据集,谁脑子就是有病。 50分问一个简单问题。 求教!用windows认证怎么连接sql呀 急急急!一个关于sql2005的问题,在线等,高分!!! 求助:sql 查询分析器无响应 sql server 占用内存达1G 执行DTS包任务随机失败的问题 select时怎么没法区分中文逗号和英文逗号 各位高手:提取时间大于2003-5-6 23:10:52 的sql语句如何写啊?就是时间精确到秒了! 数据库高手请进,请问有没有这样的一种结构,类似于视图,但...(请进,一定高分) A表B表插入C表的SQL问题 SQl 如何将3张表的记录存入一张表
不知是否正确?null是否不需要存储空间的?
但是vchar/varchar等不等长数据,好象不会占用空间的。好象论坛上有高手做过测试。
最好能建表时候填默认值为最好
/*
如果你是char/nchar这类定长的类型, 那不用说, 肯定占用.
如果你是其他数据类型, 则不占用空间.
但要注意, 即使记录中的每个列都是NULL, 记录本身也要一个地址或者指针之类, 也会有空间开销.
*/
当null变为非null以及从短望长的update中都会出现整条数据位置变化,原来的位置空间被抛弃,而引起较大的空间浪费。
null 表示空值(空字符、数字、时间等); ''表示空串
if null=''
select 1
else if isnull(null,'')=''
select 2
else
select 3
--结果为2---------------------
select len(convert(char(10),''))
select len(convert(char(10),null))
-----------
0(所影响的行数为 1 行)
-----------
NULL(所影响的行数为 1 行)
NULL表示没有值
轉剪剪的.
--------
从char和varchar的测试中可以得到以下结论,感兴趣的朋友可以测试其他类型 最后的结论是定长占用空间,不定长不占用空间。 定长一旦表结构确定,每页存储记录数固定,不定长则不固定。 定长在update中的性能要高于不定长(个人觉得是远远高于,但是没有测试数据不敢说话) 不定长因为字段从较长望 较短的update情况下会出现差值引起的空间的浪费;而另外因为null不占空间,当null变为非null以及从短望长的update中都会出现整条数据位置变化,原来的位置空间被抛弃,而引起较大的空间浪费。
''是空字符串,有分配的