天天看點

PostgreSQL和PostGIS常用入門指令

1 指令程式

① psql指令

psql是一個可執行程式,位于pg安裝目錄的bin目錄下,文法

psql -h localhost -U <使用者名>  -d <資料庫名> -p <端口号>
           

然後就會讓你輸入密碼,登入後,指令提示符就會有這樣的提示資訊:

<資料庫名稱>=#:
           

輸入SQL語句和以下指令都可以。

查詢資料庫本身的操作

-- 列出所有資料庫
\l

-- 切換資料庫
\c <資料庫名>

-- 查詢所有表
\dt

-- 檢視某個表的描述(列的類型)
\d <表名>

-- 使用内嵌vim編輯器寫sql語句,能臨時儲存,可以執行
\e

-- 查詢目前擴充
\dx

-- 截斷、退出長文本顯示
q
           

② pg_ctl指令

pg_ctl是一個可執行程式,位于pg安裝目錄的bin目錄下。用它來檢視版本或啟動資料庫的例子:

# 檢視pg版本
pg_ctl --version

# 啟動資料庫服務
# pg_ctl -D <路徑>,如果配了PGDATA環境變量就不用加-D參數
pg_ctl -D D:\PGData
           

2 建立postgis指令

如果是安裝postgis(Windows安裝包安裝)時順帶安裝了模闆資料庫,那麼預設會啟用如下擴充:

PostgreSQL和PostGIS常用入門指令

① 建立資料庫

create database <資料庫名>;
           

② 建立擴充

-- create extension <擴充名>;
-- 大小寫都可以,别忘了分号結尾

-- 3.0之後隻用postgis擴充将僅支援矢量資料
create extension postgis;
-- 栅格擴充
create extension postgis_raster;
-- 拓撲擴充
create extension postgis_topology;
           

如果僅僅需要支援空間矢量資料,那麼隻需要第一個擴充即可。

③ 解除安裝擴充

和建立擴充一樣,不列詳細的了,列出文法

drop extension <擴充名>;
           

④ 更新、更改擴充

-- alter extension <擴充名> update to "<版本号>";
alter extension postgis update to "3.0.1";
           

3 建立資料表指令

① 建立帶有幾何資料列的表

create table mytable (
	id serial primary key,
    geom geometry(point, 3857),
    name varchar(128)
);
           

② 建立索引

create index mytable_gix 
	on mytable
	using gist(geom);
           

③ 建立一個點

-- 使用EPSG:3857坐标系,建立一個0,0的點
insert into mytable (geom) values (
    st_geomfromtext('POINT(0 0)', 3857)
);
           

④ 查詢舉例:最近點查詢

-- 使用st_geomfromtext()函數,搜尋(1,2)這個坐标系是EPSG:3857的點10米内的點,傳回id和name
select id, name
from mytable
where st_dwithin(
	geom,
    st_geomfromtext('POINT(1 2)', 3857),
    10
);
           

版權沒有,翻譯自pg和postgis官方文檔。均經過實驗。https://www.cnblogs.com/onsummer/p/12940502.html

小專欄的GIS前後端應用、開發内容更多,歡迎訂閱 https://xiaozhuanlan.com/topic/5689143270

繼續閱讀