Rubyでmysqlの操作


rubyでmysqlの接続、操作をする方法を記載します。
mysqlとgem "mysql2"はすでにインストール済みとして進めていきます。
データベースやテーブルの操作に関してはこちらも参考にしてみてください。
こちらも自分が書きました。
基本的なmysqlの操作

動作環境

  • Windows10(ローカルOS)
  • CentOS7(リモートOS)
  • Oracle VM VirtualBox 6.1(仮想マシン)
  • Ruby 2.7.1p83
  • mysql

データベースの作成

CREATE DATABASE データベース名;

ここではCREATE DATABASE training;とします。

テーブルの操作

テーブルの作成

CREATE TABLE テーブル名 (
カラム名1 データ型 オプション,
カラム名2 データ型 オプション,
カラム名3 データ型 オプション,
);

今回は

CREATE TABLE training.prefectures (
id int,
name varchar(32)
);

としてみます。
training.prefecturesデータベース名.テーブル名という意味で、わざわざuseでデータベースを選択する必要がありません。

レコードの挿入

試しに一気に3件挿入します。

INSERT INTO training.prefectures VALUES
(1, "tokyo"),
(2, "osaka"),
(3, "kyoto");

Rubyでmysqlの操作

操作するためのrubyファイルを作成。

touch ms2_test.rb

データを参照

ms2_test.rb
require 'mysql2'

client = Mysql2::Client.new(host: "localhost", username: "root", password: "mysqlのパスワード")

query = %q{select * from test.languages}
results = client.query(query)
results.each do |row|
  row.each do |key, value|
    puts "#{key} => #{value}"
  end
 puts "\n"
end

それぞれの説明

  • client = Mysql2::Client.new(host: "localhost", username: "root", password: "mysqlのパスワード")
    • これでmysqlに接続できます。
    • password: "mysqlのパスワード"は、mysqlに接続するときにパスワードを設定している場合は、そちらを入力してください。
  • query = %q{select * from test.languages}
    • mysqlに投げるクエリ文です。
    • 難しく考える必要はなくて、mysqlでテーブルの操作をするときのコードをここに書き込めばいいだけです。
  • results = client.query(query)
    • データベース(client)にクエリ文(query)を投げた結果です。

あとは

やりたい操作に応じてクエリ文を変えれば大丈夫です。

その他参考

mysql2(github)