在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操作,在实际应用中可以根据需要进行扩展和组合。