1
0

More than 1 year has passed since last update.

rails c でデータベースにSQLを送る方法

Last updated at Posted at 2023-04-21

はじめに

Railsでは、ActiveRecodeがデータベースにSQLを送ってくれるので、自力でSQLを書く機会は少ない。
その中でもバックエンドエンジニアとしてSQLへの理解が重要なので、以下の方法で確認することをオススメしたい。

方法

  • rails cでコンソール起動
  • 以下のコマンドでデータベースにSQLを送信
コンソール
ActiveRecord::Base.connection.select_all("SQL文を書く'").to_a

以下は実行例(tasksテーブルのtitleカラムに"テスト"の文字列を含んだレコードを全て取得)

コンソール
ActiveRecord::Base.connection.select_all("SELECT * FROM tasks WHERE title LIKE 'テスト'").to_a

実行結果
スクリーンショット 2023-04-21 17.44.00.png

追記

select_allメソッドよりも、executeメソッドの方が汎用的であるとのコメントをいただいた。
そのため、以下の通りexecuteメソッドを利用して実行した。(⚠️検索するRailsアプリが異なっているので、モデル名や応答結果が異なる)

コンソール
ActiveRecord::Base.connection.execute("SELECT * FROM posts WHERE title LIKE 'タイトル'").to_a

実行結果
スクリーンショット 2023-04-22 午後0.51.21.png

select_allexecuteメソッドの違い

  • select_allメソッド
    SELECTクエリを実行し、データを取得するために使用される

  • executeメソッド
    UPDATE、INSERT、DELETEなどのSQL文を実行し、データを更新するために使用される

データベースから取得したい処理に応じて使い分けが必要だと思った。
汎用的に使うのであれば、executeメソッドを利用したい。

1
0
3

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
0