1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rubyでmysqlの操作

Last updated at Posted at 2020-04-16

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)を投げた結果です。

image4.png

あとは

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

その他参考

mysql2(github)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?