PostgreSQL扩展

安装扩展

PostgreSQL在安装后会自带一些扩展,如果我们需要手动安装,一般扩展会在安装目录的/share/extension下,安装语句:CREATE EXTENSION 扩展的名称

1
2
3
4
5
6
7
CREATE EXTENSION adminpack;

//安装在指定的Schema,如下安装在app模式下
CREATE EXTENSION adminpack with schema app;

//如果遇到有特殊字符的,如uuid-ossp,需要加双引号
CREATE EXTENSION "uuid-ossp";

安装后可以查看.sql后缀的文件看看里面有哪些方法从而进行使用

卸载扩展

DROP EXTENSION 扩展的名称

1
DROP EXTENSION adminpack;

部分扩展介绍

uuid-ossp

这是一个生成uuid的扩展

1
2
3
4
//安装
CREATE EXTENSION "uuid-ossp";
select uuid_generate_v1();//"e9886f56-99c8-11eb-bdc7-1062e516aa3a"
select uuid_generate_v4();//"fd4724d1-d32f-4e9f-8701-b21575d1923e"

postgis

PostGIS是PostgreSQL的扩展,它提供了符合标准的GIS支持。
它增加了对地理对象的支持,允许在SQL中运行位置查询。
许多第三方GIS工具(包括开源和专有)都支持该工具。
PostGIS主要用C语言编写。
PostGIS是在GPLV2 +下发布的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//text => geomtry
select st_geomfromtext('point(102.54 30.05)');
结果: "0101000000C3F5285C8FA25940CDCCCCCCCC0C3E40"

//geomtry => geojson
select st_asgeojson(st_geomfromtext('point(102.54 30.05)'));
结果:
{
"type":"Point",
"coordinates":[102.54,30.05]
}

//geojson => geomtry
select st_geomfromgeojson('{"type":"Point","coordinates":[102.54,30.05]}');
结果: "0101000000C3F5285C8FA25940CDCCCCCCCC0C3E40"

......

postgis扩展下载: https://www.PostgreSQL.org/ftp/postgis/

hstore

hstore模块实现了用于将键值对存储在单个值中的hstore数据类型。
hstore数据类型在许多情况下非常有用,例如半结构化数据或具有很少查询的许多属性的行。请注意,键和值仅是文本字符串

1
2
3
4
//安装
create extension hstore;
//hstore格式数据
select '"name" => "lxx","age" => "18"'::hstore;

更多API请参考: https://www.PostgreSQLtutorial.com/PostgreSQL-hstore