1. json 类型: 存储 JSON 数据,但保留原始的 JSON 文本格式。在查询时解析 JSON 数据。
-- 示例:创建包含 json 类型的表
CREATE TABLE my_table (
id SERIAL PRIMARY KEY,
json_data JSON
);
-- 示例:插入 JSON 数据
INSERT INTO my_table (json_data) VALUES
('{"name": "John", "age": 30}'),
('{"name": "Jane", "age": 25}');
查询时,你可以直接访问 JSON 中的属性:
-- 示例:查询 JSON 数据中的属性
SELECT json_data->>'name' AS person_name
FROM my_table;
2. jsonb 类型: 存储二进制形式的 JSON 数据,支持更高效的查询和索引。
-- 示例:创建包含 jsonb 类型的表
CREATE TABLE my_table (
id SERIAL PRIMARY KEY,
jsonb_data JSONB
);
-- 示例:插入 JSON 数据
INSERT INTO my_table (jsonb_data) VALUES
('{"name": "John", "age": 30}'),
('{"name": "Jane", "age": 25}');
jsonb 类型在查询时可以使用更多的索引和操作符:
-- 示例:查询 JSONB 数据中的属性
SELECT jsonb_data->>'name' AS person_name
FROM my_table;
jsonb 支持更复杂的查询,例如在 JSON 数组中查找元素、比较 JSON 对象等。
选择使用 json 还是 jsonb 取决于具体的应用场景。一般来说,如果需要更高效的查询和索引支持,推荐使用 jsonb 类型。
这些 JSON 数据类型提供了灵活的方式来存储和查询半结构化的数据,适用于许多应用场景,例如存储配置信息、日志数据等。
转载请注明出处:http://www.zyzy.cn/article/detail/8162/PostgreSQL