※{}の中身は、自分で置き換えてください。
最初に自分のuser(role)作成
まずpostgresというユーザが自動で作成されるので
それでログインする。
$ sudo su - postgres
次にuser(role)を作成
$ createuser {user name}
この時通常時使用しているユーザ名じゃないと色々と面倒になるので気をつけてください。
さらに全ての権限を与えておくと作業しやすいです。
$ sudo su - postgres
$ psql
postgres=# grant all privileges on all tables in schema public to {user name};
postgres=# alter role {user name} createdb;
一般のプロンプトによる操作
Versionの確認
$ psql --version
DBの一覧
$ psql -l
DBの作成
$ createdb {db name}
DBの削除
$ dropdb {db name}
DBのバックアップ作成
$ pg_dump {db name} > {dumpfile name}
{dumpfile name}は、ディレクトリも指定できます。
DBのリストア(復元)
$ psql < {dumpfile name}
{dumpfile name}は、ディレクトリも指定できます。
DBに接続
$ psql {db name}
DBに接続後の操作
DBの一覧表示
db=> \l
Tableの一覧表示
db=> \dt
Tableのカラム表示
db=> \d {tablename}
外部ファイル複数命令文実行
db=> \i {file name}
拡張表示ON/OFF切り替え
拡張表示とは、一つのデータごとに表示するモード
普段は、OFFでいいが、データが多いときにONにする
db=> \x
DBの接続終了
db=> \q
もしくは、Ctrl + D
SQL文
SQL:Table名の変更
db=> alter table {table name} rename to {new name};
SQL:現在時刻の表示
db=> select now();
SQL:テーブルの作成
db=> create table {samples (id serial primary key, title varchar(255), body text)}
id のtypeをintegerではなく
serial primary keyにすることで
主キーとして登録し、かつ自動で番号が更新される。
SQL:テーブルの削除
db=> drop table {table name};
SQL:テーブルのカラムにプライマリーキーを割り当てる
db=> alter table {table name} add primary key(id);
SQL:テーブルのプライマリーキーを捨てる
db=> alter table {table_name} drop constraint "{table name} + _pkey";
例えば、テーブル名がsampleなら
drop constraint "sample_pkey";
SQL:コメント
db=> create database /*ここを部分的にコメントアウトできます。*/ sample;
db=> create database sample; -- ここは、文末までコメントアウトできます。