目的
上長よりPostgreSQL
ちょっと見といてと言われたので
PostgreSQLをちょっとだけ攻略
環境
- MacOS
PostgreSQLの特徴
MySQL、MariaDB、SQLite、Oracleなど色々種類があるが、
そのなかで、PostgreSQL
ですが、MySQLと並んで人気のようです。
それで、PostgreSQLの特徴ですが、一言で表すと
性能のMySQL、機能のPostgreSQLと言われるような。。
まぁ、観点によっても評価違うでしょうが、多機能というのを特徴としてあげているトコが多いです。
使ってみる
ターミナルでのプロンプト状態で実行できるコマンドと、DBに接続したうえでのコマンドがあるようです。
ターミナルのプロンプトでのコマンド
以下は、ターミナルでのプロンプト状態で実行できるコマンド
後重要なこととしては各コマンドにユーザオプション-U postgres
等を付けないと、デフォルトユーザでの実行となるので、気をつけてください。
データベース一覧を表示
$ psql -l
ユーザーを作る
$ createuser --createdb --superuser --password testuser
DBを作る
$ createdb -U testuser --template=template0 --encoding=UTF8 testdb
sqlファイルを流し込む
$ psql -q -U testuser -d testdb -f ./dump.sql
DBに接続する
$ psql -d testdb
DBを削除する
//まず既存でDBに接続しているプロセスを消すために、プロセスを確認する。
ps aux | grep 「消したいDB名」
//接続しているプロセスを消す。
sudo kill 「プロセス番号」
//DB削除
$ dropdb -U postgres 「消したいDB名」
DBのダンプをとる
//testdb, dumpfileは任意に設定
pg_dump testdb > dumpfile
//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から抜けたい場合
接続はターミナルのプロンプトでのコマンド
参照
testdb=# \q
以上。