Hstore是一种PostgreSQL数据库中的扩展数据类型,用于存储键值对(key-value pairs)。它类似于JSON或XML,但更轻量级,专为存储简单的键值对设计。Hstore特别适用于存储非结构化数据,如元数据、配置设置等。
?
(存在检查)、?&
(包含所有键)、?|
(包含任意键)等。Hstore本身是一个数据类型,可以存储在表中的列里。它有两个主要的操作符集合:
?
(存在检查)、?&
(包含所有键)、?|
(包含任意键)等。->
(获取值)、->>
(获取文本值)、#>
(获取子对象)、#>>
(获取子对象的文本值)等。以下是一个简单的示例,展示如何在PostgreSQL中使用Hstore:
-- 创建一个包含hstore列的表
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
attributes HSTORE
);
-- 插入数据
INSERT INTO products (name, attributes) VALUES
('Product A', '"color"=>"red", "size"=>"large"'),
('Product B', '"color"=>"blue", "size"=>"medium"');
-- 查询数据
SELECT name, attributes->'color' AS color, attributes->>'size' AS size FROM products;
CREATE EXTENSION IF NOT EXISTS hstore;
CREATE INDEX idx_gist_products_attributes ON products USING GIST (attributes);