PostgreSQLコマンドメモ
接続
postgresに接続
sudo su postgres psql -d postgres
ユーザー
ユーザー作成
with〇〇でパスワードの設定や権限の付与もできる
CREATE USER [ユーザー名] ; CREATE USER [ユーザー名] with PASSWORD ' ' LOGIN;
ユーザー一覧表示
\du
ユーザー削除
drop user [ユーザー名] ;
権限
権限付与
権限は例えば
* SUPERUSER
* CREATEDB
* CREATEROLE
など。
alter role [ユーザー名] [権限名]
データベース
データベース一覧表示
lはLの小文字。
\l
データベース作成
create database [データベース名];
データベース削除
drop database [データベース名];
データベース接続
postgresユーザーになっているとき
psql -d [データベース名] -U [ユーザー名] -h localhost
postgresユーザーではない状態で直接DBに接続する場合はOS側のユーザー名、パスワードとDBに接続したいユーザー名、パスワードが一致していないといけないよう。
スキーマ
スキーマ一覧表示
\dn \dn+ // アクセス権限付きで表示
スキーマ作成
create schema [スキーマ名];
スキーマ削除
drop schema [スキーマ名] [cascade restrict];
テーブル
テーブル一覧表示
\dt [スキーマ名].*
テーブル定義とカラム情報表示
\d [スキーマ名].[テーブル名]
テーブル作成
create table [スキーマ名].[テーブル名] (カラム名 型);
テーブル削除
- cascade ビューや外部キーごと削除
- restrict ビューや外部キーが存在する場合削除できない
デフォルトはrestrict
drop table [スキーマ名].[テーブル名] [cascade restrict];
データ追加
全てのカラムにデータを追加する場合はカラム名を省略できる
insert into [スキーマ名].[テーブル名] ([カラム名] ...) values ([value] ...); insert into [スキーマ名].[テーブル名] ([カラム名] ...) values ([value] ...), ([value] ...), ([value] ...); // 複数追加
データ取得
全てのカラムのデータを取得する場合はカラム名を*にする
select [カラム名, ...] from [スキーマ名].[テーブル名];
データ更新
複数のカラムを更新する場合は[カラム名] = [value], [カラム名] = [value], ...と続ける。
最後にwhereを付けて条件に一致した行のみ更新とすることができる
update [スキーマ名].[テーブル名] set [カラム名] = [value] (where = );
データ削除
delete from [スキーマ名].[テーブル名]; // 指定したテーブルのデータを全て削除 delete from [スキーマ名].[テーブル] whrere [条件] // 条件指定で指定した行のみ削除もできる
その他
切断
\q
sqlファイル実行
DB接続後に下のコマンド
\i [file path]