GBase 8a
运维管理
文章

8a数据库中NULL和空值区别以及新旧版本加载入库时的差异介绍

发表于2024-02-19 15:06:19126次浏览2个评论

GBase南大通用大规模分布式并行数据库集群系统GBase 8a MPP Cluster中NULL和空值区别与大多数据库无甚差异,其主要特征点包括有:

1.空值(null)是不能参与任何计算,因为空值参与任何计算都为空;在进行count()统计某列的记录数的时候,如果采用的NULL值,系统会自动忽略掉,但是空值是会进行统计到其中的。
2.判断NULL 用IS NULL 或者 IS NOT NULL(比较字符 ‘=’’>’ ‘<’ ‘<>’是不能用于查询null), SQL语句函数中可以使用ifnull()函数来进行处理,判断空字符用=''或者 <>''来进行处理。
3.除字符类型,其它数字、日期类型插入''值会报错,(对于timestamp数据类型,如果往这个数据类型插入的列插入NULL值,则出现的值是当前系统时间)。
4.字符串空值('')的长度是0,是不占用空间的, 而的NULL长度是NULL,其实它是占用空间的。
5.对于空值的判断到底是使用is null 还是='' 要根据实际情况来进行区分。

GBase南大通用对于老版本和新版本在在加载时是有一个差异点的,在版本升级或者迁移改造时需要关注了解;
在老版本中,Data_format3,在指定NULL_VALUE的情况下,数据文件中的分隔符分隔的空白列,入库为非空串;新(862Build43R6及后续版本952及后续版本):
Data_format3,在指定NULL_VALUE的情况下,数据文件中的分隔符分隔的空白列,入库为空串。
差异点具体说明如下:
旧版本中:指定NULL_VALUE,且null_value值设置不正确的情况下,数据文件中的分隔符分隔的空白列入库后为非空串NULL。(与新的有差异)


新版本中:指定NULL_VALUE,且null_value值设置不正确的情况下,数据文件中的分隔符分隔的空白列入库后为空串。

评论

登录后才可以发表评论
崔哥发表于 8个月前
汉中开汉业,问此地、是耶非。想剑指三秦,君王得意,一战东归。追亡事、今不见,但山川满目泪沾衣。落日胡尘未断,西风塞马空肥。一编书是帝王师。小试去征西。更草草离筵,匆匆去路,愁满旌旗。君思我、回首处,正江涵秋影雁初飞。安得车轮四角,不堪带减腰围。
用户头像
levvel发表于 2个月前
先水一个