postgreSQLを使ってみよう
postgreSQLを使ってみようの巻。
・postgreSQLとは?
- データベース管理システムの1つ。
- タダで使える。
- ネットに情報が沢山あるので勉強するのにいい
- SQL文法が充実
※ セットアップは省略
1.サービスの起動
# service postgresql start
2.ユーザの変更
※ postgreSQLのDBスーパーユーザであるpostgresユーザで操作する必要があるため。
# su - postgres
3.ユーザーの作成
※ スーパーユーザー以外にもDBを作成できるユーザーを作成する
-bash-3.1$ createuser testuser1
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
4.DB作成
4-1.一度「su- postgres」を終わってrootに戻るためexitコマンド実行
-bash-3.1$ exit
[root @server1 ~]# su - testuser1
※ Linux 上のアカウントと PostgreSQL のアカウントが一致しないとエラーになるため
4-2.作成したユーザーでログインし直してDB作成
[testuser1 @server1 ~]$ createdb testdb1
CREATE DATABASE
4-3.作成したDBの確認
[testuser1 @server1 ~]$ psql -l
5.DBへの接続
[testuser1 @server1 ~]$ psql testdb1
6.テーブルの作成
6-1.作成前に現状のテーブル一覧を確認しておく
# \dt
リレーションがありません。 ←まだデーブルがないのでこう表示される
※ 「メタコマンド」といい、psglでDB接続後に実行可能な特有のコマンド。
6-2.テーブル作成
testdb1=> create table tbl1 (
testdb1(> id int primary key,
testdb1(> name varchar,
testdb1(> address varchar,
testdb1(> update timestamp
testdb1(> );
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "tbl1_pkey" for table "tbl1"
CREATE TABLE
6-3.作成したテーブルの確認
# \dt
7.データの挿入
・csvデータのインポート
- 全てのカラムをインポートする場合
COPY tbl1 FROM '/home/service/hoge.csv' WITH CSV
※ WITH CSV: CSVファイルと認識してカンマ区切りのデータとして扱ってくれる
その他、「HEADER : 1行目を無視する」などoptionがあるので適宜追加して実行
- 一部のカラムをインポートする場合
COPY tbl1(id,title,update) FROM '/home/service/hoge.csv' WITH CSV
・行の挿入
INSERT INTO tbl1 VALUES (1, 'Cheese', 9.99);
※ 一度に大量のデータを挿入する場合はcopyコマンドを使うのが効率的。
本作業ではダミーデータをロードするためcopyを使用する。
8.ダンプ
$ pg_dump データベース名 > バックアップファイル名
pg_dumpの実体がある場所をフルパスで指定しないとpostgreとpg_dumpのバージョンが違うというエラーが出る
確かバージョン差異を無視するオプションあったはず。それをつければエラーでないかも
9.リストア
$ psql データベース名 < バックアップファイル名
【参考】
・CentOS で PostgreSQL を使ってみよう!(2)
http://lets.postgresql.jp/documents/tutorial/centos/2
・postgreSQL基本操作
http://www.marronkun.net/linux/other/database_000014.html
・PostgreSQL 9.3.2文書 COPY
https://www.postgresql.jp/document/9.3/html/sql-copy.html
・PostgresSQLのbackup, restore方法まとめ
http://qiita.com/rice_american/items/ceae28dad13c3977e3a8