なんかの Log

良い感じで投げっぱなしにしてみせる。

PostgreSQL使い出し

PostgreSQLははるか昔にちょこっと使ったことあるだけで、内容さっぱりさっぱりなのでぼちぼち調べてます。

んでメモ。

インストールはHomebrew使うか公式インストーラ使うか悩んだけど、今回はインストーラを選択。インストール時点でpgAdmin3がついてくるのでいいかなと。基本的にはGUIとコマンド両方必要なわがままな人間なのです。

Macだとpsqlコマンドが最初からあったのでバンドルされてるのだろうけど、いまいち使いかたと設定ファイル等がどこにあるか不明だったのでインストールしました。ここらへんはちゃんと理解できれば調べていけるんだろうなぁ。

インストール後、Stack Builderでいろいろオプションでインストールできるみたいですが、一応JDBCだけインストール。pgMyAdminとかもあったけど、すでにapache入ってるしかといって設定もめんどいし、というかpgAdminあるからいいやという。

コマンド類は以下。

# 現バージョンは9.2
$ cd /Library/PostgreSQL/9.2/bin

接続

$ ./psql -U postgres

データベース一覧表示。MySQLと違ってバックスラッシュから始まる命令形みたい。

postgres=# \l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges   
-----------+----------+----------+---------+-------+-----------------------
 postgres  | postgres | UTF8     | C       | C     | 
 template0 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres

なんとなくpostgresというDBは設定系なんだろうとわかるけど、テンプレートってなんじゃらほいと。調べるとそのままの意味でPostgeSQLでは上記templateのDBを使って他DBを作るらしい。template0がまっさら用(編集不可)でtemplate1は自分で好きなようにテーブル等を組めるみたいだ。

MySQLでいうuseは\cでできる模様。

postgres=# \c template1 # template0は接続不可

あとは普通にSQL叩けるわけですな。