持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情
生命不息,学习不止
题外话
人类优于其他物种的一个重要方面是人类学会了思考,所以说在人类的进化道路上,思考是举足轻重的,为了防止大家小脑袋瓜锈住,我打算每天出一道题让大家好好的思考一下。
每日一题:我们都知道战国时期群雄割据,整整有七个国家,俗称战国七雄,但我有个疑问,为什么当时秦始皇只横扫了六国呢?都扫了不行吗?
废话不多说,上货!
正文
上回拿了一个例子详细的讲解了一下达梦数据库中的闪回查询,今天就来说说达梦数据库对json的支持。
json
json格式都不陌生,达梦数据库中json支持字符串string、数字number、布尔值true和false、 null、对象object和数组array。
这里先说一下布尔值的支持
首先我们需要创建一个json表json_text
创建语句如下:
create table json_text( key int,
value1 varchar2(100) CHECK ( value1 IS JSON(STRICT)),
value2 varchar2(100) CHECK (value2 IS JSON(LAX))
);
这里说一下 is json(strict) 与 is json(lax) 的区别
is json(strict) 设定的json,数值必须为小写,即使是布尔类型也得小写(true,false)
is json(lax) 则不限制大小写,True,TRUE,true这些都是可以的
我们可以插入两条数据试一下,插入语句如下
insert into json_text values(1,'{"dameng":TRUE}',NULL);
insert into json_text values(2,NULL,'{"dameng":TRUE}');
insert into json_text values(3,'{true:1}',NULL);
insert into json_text values(4,NULL,'{TRUE:1}');
commit;
当我们执行第一条插入语句会报错,提示违反CHECK约束[CONS134218791],也就是因为is json(strict)的限制,不能使用大写的TRUE,需要替换小写 true
当我们执行第三条插入语句也会报错,仍然提示违反CHECK约束[CONS134218791],因为is json(strict)时,true和false不能作为名称
这些在is json(lax) 均不限制
更改语句后查询结果
下一篇我们讲讲达梦数据库json格式对null的支持,以及json相关的函数。
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!