位置: 编程技术 - 正文

SQL Server中NULL的正确使用与空间占用(sql server nullif)

编辑:rootadmin

推荐整理分享SQL Server中NULL的正确使用与空间占用(sql server nullif),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql语句null,sql中null表示什么,sql中null的用法,sql中null表示什么,sql null = null,sql null = null,sql server null,sql null = null,内容如对您有帮助,希望把文章链接给更多的朋友!

我们常在SQL Server的使用或维护中遇上NULL,那么什么是NULL?如下是MSDN给出的一段简短描述(见“Null Values”):

A value of NULL indicates that the value is unknown. A value of NULL is different from an empty or zero value. No two null values are equal. Comparisons between two null values, or between a NULL and any other value, return unknown because the value of each NULL is unknown.

通俗的讲,NULL就是一个值,而且这个值是未知的(unknown);NULL不能等价任何值,甚至都不等价它自己,即NULL不等于NULL。

为了清晰的理解上述的内容,我们创建一个测试表Test_NULL,然后对表插入2条含有NULL值的记录,并进行相关验证操作:

为了验证NULL值是未知的,我们通过如下SQL查询表Test_NULL的记录,对lname字段进行=操作:

--若两个NULL是可以相等的,那么将输出4条记录。实际只输出2条记录

正确查询/使用SQL Server中的NULL

SQL Server中NULL的正确使用与空间占用(sql server nullif)

由于NULL是未知的,因此在SQL Server默认情况下我们不能使用=或<>去判断或查询一条NULL的记录(见上述),正确的方式是:使用IS NULL或IS NOT NULL去查询或过滤一条含有NULL的记录。

另外有函数ISNULL(),可判断并转换NULL为其他值。

但需注意:SQL Server仅是在默认情况下不能使用=或<>,当设置ANSI_NULLS为OFF后,即可使用=或<>查询NULL值

换言之,SQL Server默认是开启ANSI_NULLS选项的。

插入或更新NULL值:

NULL的空间占用

通常的认识是:NULL在可变长类型(如nvarchar(),varchar(8))中是不占用空间的,在固定长度的类型(如int)中会占用存储空间。

实际上,上述的认识不够严谨。真实情况是,NULL在可变长与固定长度的类型中均会占用空间

在SQL Server非Sparse Columns中,存储NULL的值需1个bit的NULL bitmap mask。

本文链接地址:https://www.jiuchutong.com/biancheng/312884.html 转载请保留说明!

上一篇:SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同(sqlserver2008分页查询)

下一篇:实例理解SQL中truncate和delete的区别

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络