目的

上長よりPostgreSQLちょっと見といてと言われたので
PostgreSQLをちょっとだけ攻略

環境

  • MacOS

PostgreSQLの特徴

MySQL、MariaDB、SQLite、Oracleなど色々種類があるが、
そのなかで、PostgreSQLですが、MySQLと並んで人気のようです。

それで、PostgreSQLの特徴ですが、一言で表すと
性能のMySQL、機能のPostgreSQLと言われるような。。
まぁ、観点によっても評価違うでしょうが、多機能というのを特徴としてあげているトコが多いです。

使ってみる

ターミナルでのプロンプト状態で実行できるコマンドと、DBに接続したうえでのコマンドがあるようです。

ターミナルのプロンプトでのコマンド

以下は、ターミナルでのプロンプト状態で実行できるコマンド
後重要なこととしては各コマンドにユーザオプション-U postgres等を付けないと、デフォルトユーザでの実行となるので、気をつけてください。

データベース一覧を表示

データベース一覧を表示
$ psql -l

ユーザーを作る

ユーザーを作る
$ createuser --createdb --superuser --password testuser

DBを作る

DBを作る
$ createdb -U testuser --template=template0 --encoding=UTF8 testdb

sqlファイルを流し込む

sqlファイルを流し込む
$ psql -q -U testuser -d testdb -f ./dump.sql 

DBに接続する

DBに接続する
$ psql -d testdb

DBを削除する

DBを削除する
//まず既存でDBに接続しているプロセスを消すために、プロセスを確認する。
ps aux | grep 「消したいDB名

//接続しているプロセスを消す。
sudo kill 「プロセス番号」

//DB削除
$ dropdb -U postgres 「消したいDB名  

DBのダンプをとる

DBのダンプをとる
//testdb, dumpfileは任意に設定
pg_dump testdb > dumpfile
dumpファイルをDBにリストアする
//testdb, dumpfileは任意に設定dumpfileは「ダンプをとる」で取得したファイル
psql testdb < dumpfile

DB接続後のコマンド

例としてtestdb上とする。

テーブル一覧を表示

テーブル一覧
testdb=# \dt

ユーザ一覧を表示

ユーザ一覧
testdb=# \du

テーブルを作成

testtableを作成するとする。
null制約したい場合はnot null
デフォルト値はDefault ~~
となる。

テーブルを作成
testdb=# create table testtable (id integer not null, title varchar(255) Default '', date timestamp without time zone Default now());)

テーブル情報を表示

testtableはテーブル名

テーブルを作成
testdb=# \d testtable

スーパーユーザ権限を与える

スーパーユーザ権限を与える
testdb=# ALTER ROLE testuser SUPERUSER;

DBから抜けたい場合

接続はターミナルのプロンプトでのコマンド参照

DBから抜ける
testdb=# \q

以上。