持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
生命不息,学习不止
题外话
人类优于其他物种的一个重要方面是人类学会了思考,所以说在人类的进化道路上,思考是举足轻重的,为了防止大家小脑袋瓜锈住,我打算每天出一道题让大家好好的思考一下。
每日一题:郑和下西洋的故事我们都听说过,,郑和最终也死在了下西洋的过程中,那么郑和七次下西洋,他死在了那次呢?
废话不多说,上货!
正文
上回拿了一个例子详细的讲解达梦数据库json格式对布尔类型的支持,今天就来说说达梦数据库json对null的支持。
null
json中的null和sql中的null是有所区别的,json中null可作为值,也可作为名称,同样null也受is json(strict) 与 is json(lax) 的限制。
但是null作为名称还是少用的好,null作为比较特殊的字符,如果用null作为名称,查询语句必须是小写才能返回对应值。
下面我们举个例子来掩饰一下。
还是创建一个json表json_text
创建语句如下:
create table json_text( key int,
value1 varchar2(100) CHECK ( value1 IS JSON)
);
然后我们插入几条null值数据,插入语句如下
insert into json_text values(1,null); --SQL语句的null
insert into json_text values(2,'{"val":null}'); --json数据的null
insert into json_text values(3,NULL); --SQL语句的null
insert into json_text values(4,'{"val":NULL}'); --json数据的null
commit;
然后我们分别使用json_value和json_query查询相应数据,看看对json中null值得影响
执行select json_value(value1, '$.val') from json_text; 结果如下
执行 select json_query(value1, '$.val' WITH WRAPPER) from json_text; 结果如下
可以看出使用json_value查询时无法区分是否为json格式数据,而使用json_query时必须指定WITH WRAPPER的发布会形式才能确定其是否为json格式
不指定WITH WRAPPER返回值与json_value 相同
下一篇我们讲讲达梦数据库json相关的函数及其使用。
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!