JSON字段在不规则数据结构中有重要作用,典型的如自定义字段、自定义表单等。
达梦8的JSON数据以字符串方式存储,即varchar2
,最大长度为8000
字节;或clob
,最大长度为100G-1
字节。
一般建议加上IS JSON
约束进行检查:
c2 varchar2(100) CHECK (c2 IS JSON(STRICT)) -- 严格模式
c3 varchar2(100) CHECK (c3 IS JSON(LAX)) -- 宽松模式(默认模式)
查询方式:
select json_value('{"aaa":123,"bbb":"abc"}','$.aaa'); -- 获取字段值
select '{"aaa":[1,2,3,4]}' @> '{"aaa":[2]}'; -- 判断是否包含某个数组值
oracle的用法类似:Oracle JSON Developer’s Guide
oracle使用JSON_EXISTS
代替@>
用于判断是否存在某个值。
KingbaseES为存储JSON数据提供了两种类型: JSON
和 JSONB
,一般应该使用JSONB
,支持更多的操作。
支持->
->>
和@>
运算符
PostgreSQL也类似。PostgreSQL JSON Functions and Operators
MySQL 5.7.8 支持原生的 JSON 数据类型。
MySQL中支持使用JSON_EXTRACT()函数以及->,->>操作符来获取JSON内部的元素。支持@>
操作。
SqlServer2016支持json操作。SQL Server 中的 JSON 数据