PostgreSQLで使ったことがある&基本のコマンド

PostgreSQL

業務で使うことになるので、勉強ついでのメモ。
postgreSQL の場合は検索すると公式サイトっぽいものがでてくきます。実際には日本PostgreSQLユーザ会となっているので、普及支援のサイトのようですね。
いつか時間のある時に読もうと思って1ヶ月くらい経つ気がする。。
日本PostgreSQLユーザ会のページは以下
https://www.postgresql.jp/

1 環境

  • AWS Cloud9(Amazon Linux)
  • Postgres 9.6

コマンド一覧

起動等

sudo /etc/init.d/postgresql96 start

Start以外のコマンドは以下

Usage: /etc/init.d/postgresql96 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|initdb|upgrade}

接続

psql -U postgres

postgres というユーザで接続。パスワードを聞かれるので入力して接続ができる。

DB作成

cms というデータベースを作成する

CREATE DATABASE cms;

DB削除

DROP DATABASE cms;

DB一覧

\l
```{.line-numbers}
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
cms | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

DB選択

\c cms

テーブル作成

CREATE TABLE categories(
id SERIAL NOT NULL PRIMARY KEY,
title text
);

Mysql でいうところの Auto Increment は SERIAL で指定する。

テーブル一覧

\dt
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | categories | table | postgres
public | comments | table | postgres
public | posts | table | postgres

カラムの確認

\d categories

カラムの追加

ALTER TABLE categories ADD created_at timestamp;

カラムの削除

ALTER TABLE categories DROP created_at;

型の変換

ALTER TABLE comments ALTER COLUMN body TYPE varchar(255);

型の変換 その2

string から integer に変更する場合はエラーが出る

cms=# ALTER TABLE comments ALTER COLUMN body TYPE integer;
ERROR: column "body" cannot be cast automatically to type integer
HINT: You might need to specify "USING body::integer".

変更したい場合はエラー文通りいれてコマンド実行する。さすがにこのテーブルに限ってはないけど、あくまで例なので。

ALTER TABLE comments ALTER COLUMN body TYPE integer USING body::integer;

まとめ

Mysql と PostgreSQL だと少しだけ違いがあるというのが逆に覚えにくいは自分だけでしょうか。。ただなんとなくMysqlよりかはDB選択とかのコマンドは短くはなってるので覚えれば早そうですね。
まだ中間テーブルやインデックスなどは使っていないため載せていませんが今後載せていく予定です。

コメント