ブログに回帰

雑多な技術的なこと、趣味のこと

PostgreSQLを使ってみる〜インストール、基本操作

PosgreSQL使う機会多いのでまとめてみる

環境

Windows 10 64bit

Ubuntu 18.04 LTS

インストール〜接続

Windows

www.enterprisedb.com

ここからインストーラをダウンロード(Windows x86-64)

インストーラは基本的にそのままだけど注意点

接続先変更

インストール先:PostgreSQL¥12¥data¥postgresql.confで設定
listen_addresses = '*'
ローカルで動かしたいとき
listen_addresses = 'localhost'

サービスの再起動

「コントロールパネル」ー「システムとセキュリティ」―「管理ツール」―「サービス」
postgres-x64-12を再起動

接続
”c:¥program files¥postgresql¥12¥bin¥psql.exe” –U postgres

インストール先は仮


Ubuntu

sudo apt-get install postgresql
接続

普段使いのユーザではPostgreSQLを操作する権限がない
PostgreSQLをインストールした時点でUbuntuにpostgresユーザが作られる

sudo su postgres

Ubuntuのpostgresユーザにスイッチ

psql

で接続

(他の方法)普段使いのユーザで

sudo -u postgres psql

で直接接続できる

サーバの状態

確認

sudo systemctl status postgresql

起動

sudo systemctl start postgresql

停止

sudo systemctl stop postgresql

基本操作

接続コマンドの補足
-u [ユーザ名]
-d [データベース名]

ここからすべて接続後のターミナル

終了:\q
SQLコマンドのヘルプ:\h
データベース一覧:\l
テーブル一覧:\dt
ビュー一覧:\dv
[DB 名]で指定されたデータベースに接続:\c [DB 名]
ロール一覧:\du
パスワード設定(Ubuntuでは聞かれないので自分で設定する必要あり):\password
ファイルからsqlを読み込ませる:\i '(sql書いたファイル.sql)'

トランザクションの開始(sql実行待ち)
BEGIN TRANSACTION;
コミット(保存)してトランザクションの終了
COMMIT;
トランザクションを途中停止し処理を最初からすべて取り消し
ABORT;
=ROLLBACK;

コメント
1行のとき:
--hogehoge
複数行のとき:
/* hogehoge
hugahuga */

ロールとは?

PostgreSQL内のユーザ
デフォルトではPostgreSQL内にpostgresユーザができている
ロール=ユーザに権限を付与できる
CREATE USERとCREATE ROLEはだいたい同じ(暴論)