はじめに
PostGISのデータベースを見るときにいろいろとコマンドを使います。メモをしているノートがちぎれてきたので、Qiitaにメモしておくことにします。適宜追加していければと思います。
(永遠に作業中・・・)
最初のうちは、PostGISのコマンドというよりPostgreSQLのコマンドが多いと思います。
環境
psql 10.15
よく使うコマンド
ログイン
psql -h hostname -p 5432 -U user -d database
ログアウト
\q
データベース切り替え
\C database
ユーザー確認、データベース確認、テーブル確認、ビューの確認、スキーマの確認 等
\du (ユーザーリスト確認)
\l (データベースリスト)
\dt (テーブルリスト確認)
\dv (ビューリスト確認)
\dn (スキーマリスト確認)
\d schema_name.* (スキーマ中のテーブルやビューを確認。)
\dv schema_name.* (スキーマ中のテーブルやビューを確認。)
\dz (アクセス権限確認)
ビューやテーブルのコラム確認
SELECT column_name FROM information_schema.columns WHERE table_name='table_name';
SELECT column_name,data_type FROM information_schema.columns WHERE table_name='table_name'; (データタイプも確認できる)
数を数える
SELECT count(*) FROM table_or_view;
※小ネタ
テキストファイルで複数行のコマンドを書いておいて、コピペして実行すると楽。(もっと効率的なやり方がありそうですが・・・)
コラムにある値をみる、値ごとの数を数える
SELECT column-name FROM table_or_view GROUP BY column-name;
SELECT column-name,count(*) FROM table_or_view GROUP BY column-name;
ジオメトリを見たいとき
SELECT ST_AsGeoJSON(geom) FROM table_or_view;
SELECT ST_AsText(geom) FROM table_or_view;
フォントの変更
chcp 1252 (437で戻る)
おまけ:GDALでPostGISからGeoJSONに
ogr2ogr -f "GeoJSON" output.geojson PG:"host='hoge' port='5432' dbname='hoge' password='hoge'" -sql "SELECT * FROM table"
テキストシークエンスでみるとき↓。
ogr2ogr -f GeoJSONSeq -lco RS=YES /vsistdout/ PG:"host='hoge' port='5432' dbname='hoge' password='hoge'" -sql "SELECT * FROM table"