PostgreSQL 是一種對象-關系型數據庫管理系統(ORDBMS),也是目前功能最強大、特性最豐富和最復雜的自由軟件數據庫系統。它起源於伯克利(BSD)的數據庫研究計划,目前是最重要的開源數據庫產品開發項目之一, 有着非常廣泛的用戶。
PostGIS在對象關系型數據庫PostgreSQL上增加了存儲管理空間數據的能力,相當於Oracle的spatial部分。PostGIS最大的特點是符合並且實現了OpenGIS的一些規范,是最著名的開源GIS數據庫。
可以說PostGIS是對象-關系型數據庫系統PostgreSQL的一個擴展,具有管理空間數據庫的能力。
postgis安裝:
(1)將postgis-bundle-pg96-2.3.1x64.zip解壓
解壓postgis-bundle-pg96-2.3.1x64.zip到沒有中文或者空格的目錄。
(2)修改makepostgisdb_using_extensions.bat文件:set PGINSTALL=C:\Program Files\PostgreSQL\9.6(PostgreSQL的安裝路徑)
修改完成后執行腳本文件(bat),開始安裝
OK,到這里為止。PostgreSQL數據庫和PostGIS擴展就已經安裝完成了。然而我們還是發現了一件事,既然我們的插件已經安裝成功了,為何數據庫還是不支持geometry 這樣的類型。不要着急,並不是我們安裝失敗了,而且我們沒有給這個數據庫開啟PostGIS擴展。執行如下命名就可以搞定了:
-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
上面的就是PostGIS的擴展列表,當然我們也根據自己的需要只加載部分的擴展。
我們現在試着向創建一張內含地理信息幾何類型列的表吧:
create table t_demo_info (
id int4 not null,
name int2 not null default 0,
type int2 not null default 0,
begin_time timestamp without time zone null,
end_time timestamp without time zone null,
lng numeric null,
lat numeric null,
lnglat geometry null,
constraint pk_t_demo_info primary key (id)
);
創建成功。
4、查看版本
查詢PostGIS版本:select postgis_full_version();
查詢PostgreSQL版本:select version();
查看PostgreSQL客戶端版本:psql –version
查看PostgreSQL版本信息:show server_version;
查看PostgreSQL版本信息(包括小版本號):show server_version_num;
查看PostgreSQL版本信息(包括小版本號):select current_setting(‘server_version_num’);
在這里需要注意的是,select current_setting(‘server_version_num’);返回的是text,如果需要將它轉換為Integer,則需要這樣寫:SELECT current_setting(‘server_version_num’)::integer;