RubyでPostgreSQLを使用するために、最低限知っておきたい事をまとめました。
実際に自分が使ってみて、「これは先に知っておきたかった!」となったものを中心に記載しています。
公式サイト
GitHub - ged/ruby-pg: A PostgreSQL client library for Ruby
A PostgreSQL client library for Ruby. Contribute to ged/ruby-pg development by creating an account on GitHub.
pgの準備
PostgreSQLの接続に pg
と呼ばれるGemを使用します。
インストール方法は以下の通り。
1.Gemfileに以下を記載をする
$ gem 'pg'
2.インストールする
$ bundle install
以上でインストールは完了です。
RubyからPostgreSQLに接続する方法
DBへの接続情報の指定方法には、いくつかやり方があります。
今回は、よく使いそうなHash指定とURI(String型)の2パターンを紹介します。
require 'pg'
# Hash指定のパターン
db = 'database'
host = 'db'
user ='user'
password = 'password'
port = 5432
conn = PG::Connection.new(host: host, port: port, dbname: db, user: user, password: password)
# URIパターン
uri = 'postgres://username:password@host:5432/dbname'
conn = PG::Connection.new(uri)
なお、接続に失敗するとPG::Errorの例外が発生します。
【参考】34.1.1 Connection Strings
32.1. Database Connection Control Functions
32.1.Database Connection Control Functions # 32.1.1. Connection Strings 32.1.2. Parameter Key Words The following functi...
RubyからPostgreSQLにクエリを投げる方法
exec_params(sql, params)
を使用してクエリを実行します。
require 'pg'
uri = 'postgres://username:password@host:5432/dbname'
conn = PG::Connection.new(uri)
conn.exec_params('SELECT * FROM $1 WHERE ', ['sample'])
この例だと「$1」の部分に「’sample’」が代入さてクエリが実行されます。
複数変数を指定したい場合は、$2, $3, …のように指定し、実際に代入するパラメータは代入したい順番に記載していきます。
尚、結果はPG::ResultというObjectが返ってきます。
conn.exec_params()で取得した結果の色々な使い方!
同じ記述が続くため、★部分以外は共通だと思って頂けたら!
conn.exec_params('SELECT * FROM $1 WHERE ', ['sample']) do |result|
# ★
end
クエリを実行して取得した結果の行数
result.count
取得した全量の値
result.values
取得した行を個別に処理する
result.each do |row|
# 取得した行がHashになっています。(row.カラム名のような形式で値を取得することが可能。)
end
以上
コメント