SQL 및 ActiveRecord

5261 단어 SQLActiveRecord
Ruby on Rails에서는 데이터베이스를 조작할 때 ActiveRecord의 쿼리 인터페이스라는 기능을 사용할 수 있다.
이 쿼리 인터페이스는 간단한 설명으로 데이터베이스 조작 언어인 SQL을 발행해 주는 Rails 독자적인 기법입니다.

SQL과 ActiveRecord의 쿼리 인터페이스 각각에서 데이터를 얻는다.



아래와 같은 테이블이 존재하고, 특정의 id열의 데이터만을 취득하고 싶은 경우.
※화상에서는 「description」이라고 하는 항목이 되고 있습니다만, 강좌내에서는 「memo_text」라고 하는 항목이 되고 있습니다.



SQL의 경우
SELECT
  *
FROM
  memos
WHERE
  id = 1
LIMIT 1; /*id: 1, title: "買い物", memo_text: "牛乳"のレコードが一件取得できる。*/

쿼리 인터페이스를 사용하는 경우.
Memo.find(1)
#find(id)メソッドは指定したidでテーブルデータを取得できる。

id 이외의 항목 (title 등)으로 검색



SQL의 경우
SELECT
  *
FROM
  memos
WHERE
  title = "買い物"
LIMIT 1;

쿼리 인터페이스를 사용하는 경우.
Memo.find_by(title: "買い物")
#find_by(項目名: 検索値)メソッドは指定したidでテーブルデータを取得できる。

조건에 일치하는 데이터를 복수 취득하고 싶은 경우.



SQL의 경우
SELECT
  *
FROM
  memos
WHERE
  id = 1;

쿼리 인터페이스를 사용하는 경우.
Memo.where(id: 1)
#where(項目名: 検索値)メソッドは指定したidでテーブルデータを取得できる。

테이블에 데이터를 등록합니다.



SQL의 경우
INSERT INTO
  memos
  (
   id,
   title,
   memo_text
  )
VALUES
  (
   1,
   "買い物",
   "じゃがいも、豚肉、カレールウ"
  )

쿼리 인터페이스를 사용하는 경우.
Memo.create(id: 1, title: "買い物", memo_text: "じゃがいも、豚肉、カレールウ")

테이블의 데이터를 업데이트합니다.



SQL의 경우
UPDATE
  memos
SET
  title = "買い物内容変更" /*変更する項目 = 値 */
WHERE
  id = 1; /*対象の条件*/

쿼리 인터페이스를 사용하는 경우.
Memo.where(id: 1).update(title: "買い物内容変更")
#idで検索を行なってから更新をしていることに注意。

테이블의 데이터 삭제


DELETE
FROM
  memos
WHERE
  id = 1; /*対象の条件*/

쿼리 인터페이스를 사용하는 경우.
Memo.where(id: 1).delete_all
#idで検索を行なってから削除をしていることに注意。
#クエリインターフェースで削除する場合は1対多の関連するレコードを削除するdestroy_allなどもある。

좋은 웹페이지 즐겨찾기