PostgreSQL hstore类型
在本节中,我们将了解PostgreSQL hstore 数据类型的工作原理,hstore 数据类型的示例,我们还将看到hstore with WHERE子句的示例,这有助于我们更灵活地处理hstore 数据值。
我们将了解如何添加、更新、删除PostgreSQL hstore 数据类型中的键值对。
我们将讨论以下运算符,例如-> 运算符(为特定值选择数据),?运算符(检查 hstore 列中的显式键)、@> 运算符(检查键值对)、?& 和 ?|Operator(选择其 hstore 列具有各种键的行)。
并且还看到了avals(), svals(), akeys() skeys(), EACH(), hstore_to_json() 函数的用法。
什么是 PostgreSQL hstore 数据类型?
在PostgreSQL中,我们要了解的下一个数据类型是hstore,它用于将键值对存储在单元值中。它始终是适用于各种情况的正确方法,例如半结构化数据或具有伺服属性的行,这些属性很少被查询。
PostgreSQL hstore 数据类型的语法
PostgreSQL hstore 数据类型的语法如下:
variable_name hstore;
在我们开始学习 hstore 数据类型之前,我们必须首先允许 hstore 扩展,它为我们的 PostgreSQL 插图加载contrib 模块。
启用 PostgreSQL hstore 扩展
要为我们的 PostgreSQL 设计启用 PostgreSQL hstore 扩展,我们可以在组织数据库中使用CREATE EXTENSION命令,如下面的语句所示:
CREATE EXTENSION hstore;
执行上述命令后,我们将收到以下消息:已使用创建扩展命令成功安装hstore 扩展。
PostgreSQL hstore 数据类型示例
让我们看一个示例来了解PostgreSQL hstore 数据类型的工作原理。
我们正在使用 CREATE 命令的帮助创建一个新表作为Movie和hstore 列,并使用 INSERT 命令插入一些值。
Movie表包含各种列,例如Movie_id、Movie_name、Movie_attr,并且具有以下属性:
- Movie_id是主键,用于查找电影。
- Movie_name是电影的别名
- Movie_attr列用于包含电影的属性,例如rating、movie_genres、language、running_time 和 release year。
对于Movie_attr列,我们使用了 hstore数据类型。
要将Movie表创建到类似的数据库 Organization 中,我们在其中启用 hstore 扩展,我们使用CREATE命令,正如我们在以下命令中看到的那样:
CREATE TABLE Movie (
Movie_id serial primary key,
Movie_name VARCHAR,
Movie_Attr hstore
);
执行上面的命令,我们会得到如下信息,显示电影表已经创建成功。
成功创建Movie表后,我们将在INSERT命令的帮助下向其中插入一些值。
将值插入 PostgreSQL hstore 列
要将值插入 hstore 列,我们使用INSERT 命令,如下面的语句所示:
INSERT INTO Movie (Movie_name, Movie_attr)
VALUES
( 'Avengers Endgame',
'"rating" => "8.4",
"movie_genres" => "Action/Sci-fi",
"language" => "English",
"release_year" => "2019",
"running_time" => "181 Minutes"'
),
( 'US',
'"rating" => "6.9",
"movie_genres" => "Horror/Thriller",
"language" => "English",
"release_year" => "2019",
"running_time" => "116 Minutes"'
),
( 'Dolittle',
'"rating" => "5.6",
"movie_genres" => "Adventure/Family ",
"language" => "English",
"release_year" => "2020",
"running_time" => "101 Minutes"'
);
执行上述命令后,我们将得到如下消息窗口,显示指定的值已成功插入到Movie表中。
热门文章
优秀文章