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安裝包安裝)時順帶安裝了模板數據庫,那么默認會啟用如下擴展:
① 創建數據庫
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