PostgreSQL 中 json/jsonb 类型 的相关SQL语句
在PostgreSQL中,json
和jsonb
数据类型用于存储JSON格式的数据。json
类型存储的是文本,而jsonb
类型存储的是二进制,通常执行得更快,因为它是预解析的。
以下是一些基本的SQL操作示例:
- 创建含有jsonb列的表:
CREATE TABLE example (
id SERIAL PRIMARY KEY,
data JSONB
);
- 插入JSON数据到jsonb列:
INSERT INTO example (data) VALUES ('{"key": "value"}');
- 查询jsonb列中的数据:
SELECT data -> 'key' FROM example;
- 更新jsonb列中的数据:
UPDATE example SET data = jsonb_set(data, '{key}', '"new_value"');
- 删除jsonb列中的字段:
UPDATE example SET data = data - 'key';
- 使用操作符查询jsonb列:
SELECT * FROM example WHERE data @> '{"key": "value"}';
- 转换json列和jsonb列:
-- json 转 jsonb
SELECT data::jsonb FROM example;
-- jsonb 转 json
SELECT data::json FROM example;
- 使用
jsonb_agg
聚合函数聚合数据:
SELECT jsonb_agg(data) FROM example;
- 使用
jsonb_object_keys
函数获取所有键:
SELECT jsonb_object_keys(data) FROM example;
这些操作涵盖了基本的JSON操作,在实际应用中可以根据需要进行扩展和组合。
评论已关闭