0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ruby / Rails / SQL の違いを表で整理してみた

Last updated at Posted at 2025-08-13

この記事について

Ruby on Railsをスクールでハンズオン学習をして、卒業後に振り返りつつ疑問に思ったことは、「どれがRubyでどれがRailsなのか?」という点でした。
また、自身の制作したポートフォリオではSQLについても記述する実装があり、SQL文の生成についても触れていきます。
この記事は、実装機能の理解を深めるためにRuby / Rails / SQLのよく使うものを表形式でまとめたものです。
本記事では概要のみを扱い、詳細は各記事で解説しています。


2. よく使う Ruby構文

構文 用途
def ... end メソッド定義 def hello_world; puts "Hello"; end
class ... end クラス定義 class Post; end
module ... end モジュール定義 module Searchable; end
if / elsif / else / unless 条件分岐 if user.active?
case ... when ... end 複数条件分岐 case status; when 1; ... end
:symbol シンボル :member
-> { ... } ラムダ式 -> { where(active: true) }
{ ... } / do ... end ブロック .each { |x| ... }
変数代入 値の保存 name = "Ruby"
配列・ハッシュリテラル データ構造 [1, 2, 3], { a: 1, b: 2 }
式展開 文字列に式の値を埋め込む "Hello #{name}"

3. よく使う Railsメソッド(ActiveRecord中心)

3-1. 検索・条件指定系

メソッド 用途 生成SQL例
where 条件指定 WHERE active = TRUE
or OR条件指定 WHERE a = 1 OR b = 1
not NOT条件指定 WHERE NOT(active = TRUE)
order 並び順 ORDER BY created_at DESC
limit 件数制限 LIMIT 10
offset 開始位置指定 OFFSET 20
find 主キー検索 WHERE id = 1
find_by 条件に合う最初の1件 LIMIT 1
first / last 最初/最後の1件 ORDER BY id ASC/DESC LIMIT 1
exists? 存在確認 SELECT 1 FROM ... WHERE ... LIMIT 1

3-2. 関連・結合系

メソッド 用途 生成SQL例
joins 内部結合 INNER JOIN members ON ...
left_joins 左外部結合 LEFT OUTER JOIN members ON ...
includes Eager loading 複数SELECTやJOIN
merge 他モデルのスコープ適用 WHERE members.is_active = TRUE
belongs_to / has_many 関連付け定義 JOIN条件の基礎になる

3-3. 集計系

メソッド 用途 生成SQL例
count 件数取得 SELECT COUNT(*) FROM ...
sum 合計値 SUM(price)
average 平均値 AVG(price)
minimum / maximum 最小/最大値 MIN(price) / MAX(price)
group グループ化 GROUP BY category_id
having 集約後条件 HAVING COUNT(*) > 1
distinct 重複除去 SELECT DISTINCT ...

3-4. スコープ系

メソッド 用途 生成SQL例
scope 名前付きクエリ定義 scope :published, -> {...}
default_scope デフォルト条件 自動的にWHERE追加
unscoped デフォルト条件解除 条件無し

4. よく使う SQL構文

構文 用途
SELECT カラム選択 SELECT * FROM posts
FROM 参照テーブル FROM posts
WHERE 条件 WHERE title LIKE '%運動%'
AND / OR 論理条件 WHERE active = TRUE AND age > 20
NOT 否定条件 WHERE NOT(active = TRUE)
JOIN 内部結合 INNER JOIN members ON ...
LEFT JOIN 左外部結合 LEFT JOIN members ON ...
LIKE 部分一致 LIKE '%keyword%'
IN 複数候補 WHERE id IN (1,2,3)
BETWEEN 範囲条件 WHERE price BETWEEN 100 AND 500
GROUP BY グループ化 GROUP BY genre_id
HAVING 集約後条件 HAVING COUNT(*) > 1
ORDER BY 並び替え ORDER BY created_at DESC
LIMIT 件数制限 LIMIT 10
OFFSET 開始位置指定 OFFSET 20
DISTINCT 重複除去 SELECT DISTINCT posts.id

最後に

表形式で Ruby / Rails / SQL の違いをまとめることで、区別をつける第一歩になりました。
学び始めた頃は動かすだけで精一杯でしたが、最近は全体像から具体へと視点が変わり、Railsの理解が少しずつ深まってきた気がします。
まだ完全に理解していない部分もあり、今後学びながら補足していく予定です。
記事の内容に間違いや不明点があれば、ぜひ教えていただけると嬉しいです。最後まで読んでいただきありがとうございました。

0
0
2

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?