XML类型
XML数据类型可以被用来存储XML数据。
创建XML值语法:
XMLPARSE ( { DOCUMENT | CONTENT } value)
从XML生成字符串命令语法:
XMLSERIALIZE ( { DOCUMENT | CONTENT } value AS type )
注意:使用前需要在安装数据库时提前编译:
configure --with-libxml
JSON类型
JSON 数据类型是用来存储JSON(JavaScript Object Notation)数据的。
JSON数据类型有两种:json和jsonb。
- json数据类型存储输入文本的精准拷贝,处理函数必须在每次执行时必须重新解析该数据。
- jsonb数据存储在二进制格式中,因为需要做附加的转换,jsonb输入速度比json慢,处理速度会快(因为不需要做解析)。同时jsonb还支持索引。
JSON数据类型输入/输出语法:
-- 简单标量/基本值
-- 基本值可以是数字、带引号的字符串、true、false或者null
SELECT '5'::json;
json
------
5
(1 row)
-- 有零个或者更多元素的数组(元素不需要为同一类型)
SELECT '[1, 2, "foo", null]'::json;
json
---------------------
[1, 2, "foo", null]
(1 row)
-- 包含键值对的对象
-- 注意对象键必须总是带引号的字符串
SELECT '{"bar": "baz", "balance": 7.77, "active": false}'::json;
json
--------------------------------------------------
{"bar": "baz", "balance": 7.77, "active": false}
(1 row)
-- 数组和对象可以被任意嵌套
SELECT '{"foo": [true, "bar"], "tags": {"a": 1, "b": null}}'::json;
json
-----------------------------------------------------
{"foo": [true, "bar"], "tags": {"a": 1, "b": null}}
(1 row)