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?

More than 3 years have passed since last update.

ActiveRecordの基本メソッドとSQL

Posted at

##初めに
railsにはActiveRecordと呼ばれる機能が存在します。
ActiveRecordを使用することでデータベースに簡単にアクセスできます。
しかしActiveRecordでは対応できないデータの取り出しや、そもそもSQLの理解が深まらないため、今回はActiveRecordのメソッドで発行されるSQLについてまとめます。

##ORMとは
オブジェクトリレーショナルマッピングのことで、rubyなどのオブジェクト指向言語では直接扱う事のできないRDBMS上のデータを、マッピングすることで扱えるようにします。開発者はSQLを意識することなく、オブジェクト指向的にデータを扱うことが可能になります。

##ActiveRecordとは
ActiveRecordとはMVCのM(mdel)を担う階層です。上記のORMシステムを利用するための機能。railsで作成されたmodelはActiveRecordが継承されるため、ActiveRecordが提供するメソッドを使用することができます。

##ActiveRecordの基本メソッドによって発行されるSQL

カラム データ型
id integer
name string
practice.rb

user.save(name: "ジョン")
#userが新規登録の場合。
#INSERT INTO users name values ('ジョン')
#userが既に登録されている場合。
#UPDATE users SET name = 'ジョン';

user.update(name: "たかし")
#UPDATE users SET name = 'たかし';
#既に登録されている場合はsaveメソッドとupdateメソッドは同じSQLが発行される。

user.create(name: 'ジョン')
#INSERT INTO users (name) values ('ジョン');

User.find(1)
#SELECT * FROM users WEHERE id = 1 limit = 1;

User.find_by(name: "ジョン")
#SELECT * FROM users where name = 'ジョン' limit = 1;

User.all
#SELECT * FROM users;

user.destoroy
#DELETE FROM users WHERE users.id = 1;

User.find(1).articles
# SELECT * FROM users WHERE id = 1 LIMIT 1;
# SELECT * FROM articles WHERE user_id = 1;

##終わりに
ActiveRecordは便利ですが、どうしても発行されるSQLを意識しないまま実装してしまいがちです。実務においてSQLは使用機会が多いそうなので意識して実装する方が良さそうですね〜

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