Postgresql + postgis基本操作

Wenchao Zhang發表於2020-12-31

windows 下操作說明

cmd登入/linux

psql -h localhost -U postgres -p 5432

輸入密碼 :123123

linux另一種登入方式:

sudo su - postgres  回車
psql 回車

\l #列出所有的資料庫
\c database_name #切換資料庫 \c test 進入到test資料庫下
\d #顯示當前資料庫中所有表
\q #退出

windows 下PostgreSQL匯入sql檔案

在軟體的安裝目錄的bin檔案下開啟命令列工具 輸入:

psql -d 資料庫名稱 -h 資料庫地址 -p 5432 -U postgres -f sql檔案(E:\Config\SQL\iSmartCapDb.sql)

D:\DataBaseTool\Postgresql10\bin>psql -d maplayers3 -h 127.0.0.1 -p 5432 -U postgres -f E:\360Downloads\tc-maplayers安裝包\java\maplayres\area_geometry.sql

安裝的postgis新增到本資料庫,新增空間擴充套件,在sql執行工具中執行下面語句即可。

CREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;
CREATE EXTENSION address_standardizer;

刪除資料庫報錯ERROR: database “mydb” is being accessed by other users
DETAIL: There are 3 other sessions using the database.
執行下面操作:

SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='mydb' AND pid<>pg_backend_pid();

然後再執行:

drop DATABASE mydb;

語句說明:

pg_terminate_backend:用來終止與資料庫的連線的程式id的函式。
pg_stat_activity:是一個系統表,用於儲存服務程式的屬性和狀態。
pg_backend_pid():是一個系統函式,獲取附加到當前會話的伺服器程式的ID

1.進入到postgresql

psql -h localhost -U postgres -p 5432

2. 建立資料庫stereo_images


CREATE DATABASE stereo_images;

3. 切換到stereo_images資料庫


\c stereo_images

4. 安裝的postgis新增到本資料庫,新增空間擴充套件


CREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;
CREATE EXTENSION address_standardizer;

linux:

5.執行那個sql檔案(命令你也可以百度查,我提供一個參考的) psql -f test.sql

或者: 1. 將area_geometry.sql檔案上傳到伺服器 例如: /opt/area_geometry.sql
2. 進入到postgresql的bin目錄下,執行.sql檔案
3. ./psql –f /opt/area_geometry.sql

windows:
windows 下PostgreSQL匯入sql檔案
在軟體的安裝目錄的bin檔案下開啟命令列工具 輸入:

psql -d 資料庫名稱 -h 資料庫地址 -p 5432 -U postgres -f sql檔案(E:\Config\SQL\iSmartCapDb.sql)
D:\DataBaseTool\Postgresql10\bin>psql -d stereo_images -h 127.0.0.1 -p 5432 -U postgres -f E:\360Downloads\tc-maplayers安裝包\java\maplayres\area_geometry.sql

6. 檢視錶 \d

7. 檢視錶結構 \d stereo_images

除了前面已經用到的\password命令(設定密碼)和\q命令(退出)以外,控制檯還提供一系列其他命令。

\h:檢視SQL命令的解釋,比如\h select。

?:檢視psql命令列表。

\l:列出所有資料庫。

\c [database_name]:連線其他資料庫。

\d:列出當前資料庫的所有表格。

\d [table_name]:列出某一張表格的結構。

\du:列出所有使用者。

\e:開啟文字編輯器。

\conninfo:列出當前資料庫和連線的資訊。

基本的資料庫操作,就是使用一般的SQL語言:

複製程式碼

建立新表

CREATE TABLE usertbl(name VARCHAR(20), signupdate DATE);

插入資料

INSERT INTO usertbl(name, signupdate) VALUES(‘張三’, ‘2013-12-22’);

選擇記錄

SELECT * FROM user_tbl;

更新資料

UPDATE user_tbl set name = ‘李四’ WHERE name = ‘張三’;

刪除記錄

DELETE FROM user_tbl WHERE name = ‘李四’ ;

新增欄位

ALTER TABLE user_tbl ADD email VARCHAR(40);

更新結構

ALTER TABLE usertbl ALTER COLUMN signupdate SET NOT NULL;

更名欄位

ALTER TABLE usertbl RENAME COLUMN signupdate TO signup;

刪除欄位

ALTER TABLE user_tbl DROP COLUMN email;

表格更名

ALTER TABLE usertbl RENAME TO backuptbl;

刪除表格

DROP TABLE IF EXISTS backup_tbl;

相關文章