• KingbaseES支持JSON和JSONB。这两种类型在使用上几乎完全一致,主要区别是
  1. JSON类型把输入的数据原封不动的存放到数据库中。JSONB类型在存放时把JSON解析成二进制格式。
  2. JSONB支持在其上建索引,而JSON不能,这是JSONB的一个很大的优点。
  3. JSON中会保留多余的空格,保留重复的Key,保留Key的顺序。JSONB则完全相反,不保留多余的空格,不保留重复的Key,不保留Key的顺序。
  • JSON基本类型和对应的KingbaseES类型
JSON 基本类型 KingbaseES类型 注释
string text 不允许\u0000,如果数据库编码不是 UTF8,非ASCII Unicode转义也是这样
number numeric JSON中没有 NaN 和 infinity值
boolean boolean JSON只接受小写true和false拼写
null (无) SQL NULL是一个不同的概念
  • JSON 输入和输出语法

    下列都是合法的json(或者jsonb)表达式:

    简单标量/基本值

    基本值可以是数字、带引号的字符串、true、false或者null

    SELECT '5'::json;

    有零个或者更多元素的数组(元素不需要为同一类型)

    SELECT '[1, 2, "foo", null]'::json;

    包含键值对的对象,注意对象键必须总是带引号的字符串

    SELECT '{"bar": "baz", "balance": 7.77, "active": false}'::json;

    数组和对象可以被任意嵌套

    SELECT '{"foo": [true, "bar"], "tags": {"a": 1, "b": null}}'::json;

如前所述,当一个JSON值被输入并且接着不做任何附加处理就输出时,json会输出和输入完全相同的文本,而 JSONB 则不会保留语义上没有意义的细节(例如空格)。

例如,注意下面的不同:

SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::json;

json

.-------------------------------------------------

{"bar": "baz", "balance": 7.77, "active":false}

(1 row)

SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::jsonb;

jsonb

.--------------------------------------------------

{"bar": "baz", "active": false, "balance": 7.77}

(1 row)

最新文章

  1. php简单实现socket通信
  2. 3.raid基础应用
  3. code of C/C++(3) - 从 《Accelerated C++》源码学习句柄类
  4. BlueDream.js(蓝梦)——jQuery网站使用引导插件
  5. MyKTV项目总结
  6. array_count_values函数
  7. SQL0668N 由于表 "db2inst1.test" 上的原因代码 "3",所以不允许操作(解因为LOAD引起的LOAD暂挂状态锁)
  8. Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装
  9. Python脚本控制的WebDriver 常用操作 <十九> 获取测试对象的状态
  10. 关于hadoop的环境变量
  11. 使用python编写批量卸载android应用的脚本
  12. BZOJ 1059 矩阵游戏
  13. html5与EmguCV前后端实现——人脸识别篇(一)
  14. ComponentName意思
  15. ef左联三张表案例
  16. glmnetUtils: quality of life enhancements for elastic net regression with glmnet
  17. CentOS-7.2安装SQuirreL SQL Client连接Hive
  18. Python和SQL 2017的强大功能
  19. C# 如何在Excel表格中插入、编辑和删除批注
  20. 20165237 预备作业3 Linux安装及学习

热门文章

  1. Go写文件的权限 WriteFile(filename, data, 0644)?
  2. 关于vue cli 使用iview 自定义主题遇到的坑
  3. Java实用类(五) -Math类和指定范围的随机数
  4. RPA应用场景-对公账户开户资质审查
  5. 令你瞠目结舌的 Python 代码技巧
  6. 毕设之Python爬取天气数据及可视化分析
  7. Linux修改默认ssh22端口
  8. Task.Run(), Task.Factory.StartNew() 和 New Task() 的行为不一致分析
  9. meet in the middle 复习笔记
  10. springboot集成redis集群