9일차: 대학생 데이터(주 데이터)
ruby의 정수형은integer이고 mysql는int(C++경험상,int가 더 익숙함
vagrantfile
config.vm.provider "virtualbox" do |vb
vb.memory = "8192"
end
사용 환경
호스트 운영 체제: Windows10 홈 페이지
가상 환경 운영 체제: Ubuntu Bento/Bionic
Ruby:2.51
Rails:5.2.2
데이터 생성
테이블 간의 연관성
준비
rails new
rails new self_univ -d mysql
Gemfilegem 'mini_racer', platforms: :ruby
bundle install
qpp/config/database.ymlpassword:
rails db:create
이 단계
scaffold 컨트롤러와 모델 동시 생성)
루비의 정수형은integer입니다.
마지막으로 중간 테이블 만들기
중간 테이블에서reference를 통해 주 키를 참조하는column을 지정합니다
- bigint로 자동 설정
rails g scaffold를 사용하여 만들기 # Studentテーブル
rails generate scaffold Student name:string email:string gender:integer age:integer opinion:text
# Subjectテーブル
rails generate scaffold Subject name:string max_score:integer
# Clubテーブル
rails generate scaffold Club name:string
# ExamResultテーブル
rails generate scaffold ExamResult student:references subject:references name:string score:integer
# ClubStudentテーブル(中間テーブルなので最後
rails generate scaffold ClubStudent student:references club:references name:string
mysql 측면 반영
rails db:migrate
테이블 간의 상관성 정의
참조 필요: 활성 레코드 연관
일본어 버전 있어요.
참조: 활동 레코드 연관
app/models/student.rbclass Student < ApplicationRecord
has_many :exam_results
has_many :subjects, through: :exam_results
has_many :club_students
has_many :clubs, through: :club_students
end
app/models/subject.rbclass Subject < ApplicationRecord
has_many :exam_results
has_many :students, through: :exam_results
end
app/models/exam_result.rbclass ExamResult < ApplicationRecord
belongs_to :student
belongs_to :subject
end
주 키 측의 설정 결과로 인해 중간 테이블 측의 설정이 자동으로 변경되었다
app/models/club.rbclass Club < ApplicationRecord
has_many :club_students
has_many :students, through: :club_students
end
app/models/club_student.rbclass ClubStudent < ApplicationRecord
belongs_to :student
belongs_to :club
end
마스터 생성
학생 테이블로
console(1..100).each do |num|
if num % 2 == 0
gen = 0
ag = 0
at = 0
else
gen = 1
ag = 1
at = 1
end
op = (0..20).map{('あ'..'わ').to_a[rand(26)]}.join
user = Student.create(name: "taro-#{num}", email: "val-#{num}@gmail.com", gender: gen, age: ag, opinion: op)
end
클럽 테이블로
consoleClub.create(name: '自転車')
Club.create(name: 'サッカー')
Club.create(name: 'バスケットボール')
Club.create(name: 'バレーボール')
Club.create(name: '空手')
Club.create(name: '水泳')
Club.create(name: '登山')
Club.create(name: '陸上')
Club.create(name: 'バイク')
Club.create(name: '英会話')
Club.create(name: 'カメラ')
Club.create(name: '軽音')
Club.create(name: 'サーフィン')
테이블로
consoleSubject.create(name: '数学', max_score: 200);
Subject.create(name: '国語', max_score: 200);
Subject.create(name: '英語', max_score: 200);
Subject.create(name: '化学', max_score: 100);
Subject.create(name: '物理', max_score: 100);
Subject.create(name: '生物', max_score: 100);
Subject.create(name: '世界史', max_score: 100);
Subject.create(name: '日本史', max_score: 100);
Subject.create(name: '地理', max_score: 100);
(0..20).map{('아'...'와').to_a[rand(26)]}.join
이것저것 가득 찼다
범위 대상
문자도 쓸 수 있어요.
맵 방법
요소의 수량을 반복하여 블록의 반환 값을 집합한 그룹을 만들고 되돌려줍니다.
collect 방법의 별명입니다.# 配列の入った変数.map {|変数名| 処理内容 }
numbers = ["68", "65", "6C", "6C", "6F"]
p numbers.map {|item| item.to_i(16) }
[104, 101, 108, 108, 111]
#上では16進数を10進数に変換
to_a(Array)
패턴 객체 복귀
rand(max)
max가 0일 때 0.0 이상, 1.0 실수 미만, 정수일 때 0 이상, max보다 작은 정수
join(sep =)
join 방법은 그룹의 모든 요소를 문자열로 변환하고 매개 변수sep를 구분자로 조합한 문자열을 되돌려줍니다.
매개 변수를 생략하면 구분자가 없고 요소가 조합된 문자열이 됩니다
연결 여부 확인
우선,student id에 데이터를 1번으로 삽입해 보십시오.
railsc 방면에서는 잘하지 못하기 때문에 mysql 방면에서.
mysqlINSERT INTO exam_results (student_id,subject_id,name,score,created_at,updated_at) VALUE
(1,1,'一次試験',181,now(),now()),(1,2,'一次試験',146,now(),now()),(1,3,'一次試験',199,now(),now()),(1,4,'一次試験',99,now(),now()),(1,5,'一次試験',62,now(),now()),
(1,6,'一次試験',83,now(),now()),(1,7,'一次試験',62,now(),now()),(1,8,'一次試験',77,now(),now()),(1,9,'一次試験',81,now(),now());
consolestu = Student.first
stu.exam_results
# 結果
# 分かりづらいので、4教科目以降省略、および編集
stu = Student.first
SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
Student Load (0.2ms)
=> #<Student id: 1, name: "taro-1", email: "[email protected]", gender: 1, age: 1, opinion: "すぎこじぅかいけさぎさあえぃざきこぎごえぎ", created_at: "2019-03-16 11:02:23", updated_at: "2019-03-16 11:02:23">
stu.exam_results
ExamResult Load (0.2ms) SELECT `exam_results`.* FROM `exam_results` WHERE `exam_results`.`student_id` = 1 LIMIT 11
=> #<ActiveRecord::Associations::CollectionProxy
[#<ExamResult id: 1, student_id: 1, subject_id: 1, name: "一次試験", score: 181, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
#<ExamResult id: 2, student_id: 1, subject_id: 2, name: "一次試験", score: 146, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
#<ExamResult id: 3, student_id: 1, subject_id: 3, name: "一次試験", score: 199, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
결과SELECT `students`.* FROM `students` ORDER BY `students`.`id` ASC LIMIT 1
와SELECT` `exam_results`.* FROM `exam_results` WHERE `exam_results`.`student_id` = 1 LIMIT 11
를 사용하면 MySQL에서도 볼 수 있습니다.마땅히
MySQL
SELECT students.* FROM students ORDER BY students.id ASC LIMIT 1;
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
| id | name | email | gender | age | opinion | created_at | updated_at |
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
| 1 | taro-1 | [email protected] | 1 | 1 | すぎこじぅかいけさぎさあえぃざきこぎごえぎ | 2019-03-16 11:02:23 | 2019-03-16 11:02:23 |
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
SELECT exam_results.* FROM exam_results WHERE exam_results.student_id = 1 LIMIT 11;
+----+------------+------------+--------------+-------+---------------------+---------------------+
| id | student_id | subject_id | name | score | created_at | updated_at |
+----+------------+------------+--------------+-------+---------------------+---------------------+
| 1 | 1 | 1 | 一次試験 | 181 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 2 | 1 | 2 | 一次試験 | 146 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 3 | 1 | 3 | 一次試験 | 199 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 4 | 1 | 4 | 一次試験 | 99 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 5 | 1 | 5 | 一次試験 | 62 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 6 | 1 | 6 | 一次試験 | 83 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 7 | 1 | 7 | 一次試験 | 62 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 8 | 1 | 8 | 一次試験 | 77 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 9 | 1 | 9 | 一次試験 | 81 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
+----+------------+------------+--------------+-------+---------------------+---------------------+
Reference
이 문제에 관하여(9일차: 대학생 데이터(주 데이터)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/OriverK/items/80dc52ba9753f8bf6c82
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
rails new
rails new self_univ -d mysql
Gemfilegem 'mini_racer', platforms: :ruby
bundle install
qpp/config/database.ymlpassword:
rails db:create
이 단계
scaffold 컨트롤러와 모델 동시 생성)
루비의 정수형은integer입니다.
마지막으로 중간 테이블 만들기
중간 테이블에서reference를 통해 주 키를 참조하는column을 지정합니다
- bigint로 자동 설정
rails g scaffold를 사용하여 만들기 # Studentテーブル
rails generate scaffold Student name:string email:string gender:integer age:integer opinion:text
# Subjectテーブル
rails generate scaffold Subject name:string max_score:integer
# Clubテーブル
rails generate scaffold Club name:string
# ExamResultテーブル
rails generate scaffold ExamResult student:references subject:references name:string score:integer
# ClubStudentテーブル(中間テーブルなので最後
rails generate scaffold ClubStudent student:references club:references name:string
mysql 측면 반영
rails db:migrate
테이블 간의 상관성 정의
참조 필요: 활성 레코드 연관
일본어 버전 있어요.
참조: 활동 레코드 연관
app/models/student.rbclass Student < ApplicationRecord
has_many :exam_results
has_many :subjects, through: :exam_results
has_many :club_students
has_many :clubs, through: :club_students
end
app/models/subject.rbclass Subject < ApplicationRecord
has_many :exam_results
has_many :students, through: :exam_results
end
app/models/exam_result.rbclass ExamResult < ApplicationRecord
belongs_to :student
belongs_to :subject
end
주 키 측의 설정 결과로 인해 중간 테이블 측의 설정이 자동으로 변경되었다
app/models/club.rbclass Club < ApplicationRecord
has_many :club_students
has_many :students, through: :club_students
end
app/models/club_student.rbclass ClubStudent < ApplicationRecord
belongs_to :student
belongs_to :club
end
마스터 생성
학생 테이블로
console(1..100).each do |num|
if num % 2 == 0
gen = 0
ag = 0
at = 0
else
gen = 1
ag = 1
at = 1
end
op = (0..20).map{('あ'..'わ').to_a[rand(26)]}.join
user = Student.create(name: "taro-#{num}", email: "val-#{num}@gmail.com", gender: gen, age: ag, opinion: op)
end
클럽 테이블로
consoleClub.create(name: '自転車')
Club.create(name: 'サッカー')
Club.create(name: 'バスケットボール')
Club.create(name: 'バレーボール')
Club.create(name: '空手')
Club.create(name: '水泳')
Club.create(name: '登山')
Club.create(name: '陸上')
Club.create(name: 'バイク')
Club.create(name: '英会話')
Club.create(name: 'カメラ')
Club.create(name: '軽音')
Club.create(name: 'サーフィン')
테이블로
consoleSubject.create(name: '数学', max_score: 200);
Subject.create(name: '国語', max_score: 200);
Subject.create(name: '英語', max_score: 200);
Subject.create(name: '化学', max_score: 100);
Subject.create(name: '物理', max_score: 100);
Subject.create(name: '生物', max_score: 100);
Subject.create(name: '世界史', max_score: 100);
Subject.create(name: '日本史', max_score: 100);
Subject.create(name: '地理', max_score: 100);
(0..20).map{('아'...'와').to_a[rand(26)]}.join
이것저것 가득 찼다
범위 대상
문자도 쓸 수 있어요.
맵 방법
요소의 수량을 반복하여 블록의 반환 값을 집합한 그룹을 만들고 되돌려줍니다.
collect 방법의 별명입니다.# 配列の入った変数.map {|変数名| 処理内容 }
numbers = ["68", "65", "6C", "6C", "6F"]
p numbers.map {|item| item.to_i(16) }
[104, 101, 108, 108, 111]
#上では16進数を10進数に変換
to_a(Array)
패턴 객체 복귀
rand(max)
max가 0일 때 0.0 이상, 1.0 실수 미만, 정수일 때 0 이상, max보다 작은 정수
join(sep =)
join 방법은 그룹의 모든 요소를 문자열로 변환하고 매개 변수sep를 구분자로 조합한 문자열을 되돌려줍니다.
매개 변수를 생략하면 구분자가 없고 요소가 조합된 문자열이 됩니다
연결 여부 확인
우선,student id에 데이터를 1번으로 삽입해 보십시오.
railsc 방면에서는 잘하지 못하기 때문에 mysql 방면에서.
mysqlINSERT INTO exam_results (student_id,subject_id,name,score,created_at,updated_at) VALUE
(1,1,'一次試験',181,now(),now()),(1,2,'一次試験',146,now(),now()),(1,3,'一次試験',199,now(),now()),(1,4,'一次試験',99,now(),now()),(1,5,'一次試験',62,now(),now()),
(1,6,'一次試験',83,now(),now()),(1,7,'一次試験',62,now(),now()),(1,8,'一次試験',77,now(),now()),(1,9,'一次試験',81,now(),now());
consolestu = Student.first
stu.exam_results
# 結果
# 分かりづらいので、4教科目以降省略、および編集
stu = Student.first
SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
Student Load (0.2ms)
=> #<Student id: 1, name: "taro-1", email: "[email protected]", gender: 1, age: 1, opinion: "すぎこじぅかいけさぎさあえぃざきこぎごえぎ", created_at: "2019-03-16 11:02:23", updated_at: "2019-03-16 11:02:23">
stu.exam_results
ExamResult Load (0.2ms) SELECT `exam_results`.* FROM `exam_results` WHERE `exam_results`.`student_id` = 1 LIMIT 11
=> #<ActiveRecord::Associations::CollectionProxy
[#<ExamResult id: 1, student_id: 1, subject_id: 1, name: "一次試験", score: 181, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
#<ExamResult id: 2, student_id: 1, subject_id: 2, name: "一次試験", score: 146, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
#<ExamResult id: 3, student_id: 1, subject_id: 3, name: "一次試験", score: 199, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
결과SELECT `students`.* FROM `students` ORDER BY `students`.`id` ASC LIMIT 1
와SELECT` `exam_results`.* FROM `exam_results` WHERE `exam_results`.`student_id` = 1 LIMIT 11
를 사용하면 MySQL에서도 볼 수 있습니다.마땅히
MySQL
SELECT students.* FROM students ORDER BY students.id ASC LIMIT 1;
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
| id | name | email | gender | age | opinion | created_at | updated_at |
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
| 1 | taro-1 | [email protected] | 1 | 1 | すぎこじぅかいけさぎさあえぃざきこぎごえぎ | 2019-03-16 11:02:23 | 2019-03-16 11:02:23 |
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
SELECT exam_results.* FROM exam_results WHERE exam_results.student_id = 1 LIMIT 11;
+----+------------+------------+--------------+-------+---------------------+---------------------+
| id | student_id | subject_id | name | score | created_at | updated_at |
+----+------------+------------+--------------+-------+---------------------+---------------------+
| 1 | 1 | 1 | 一次試験 | 181 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 2 | 1 | 2 | 一次試験 | 146 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 3 | 1 | 3 | 一次試験 | 199 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 4 | 1 | 4 | 一次試験 | 99 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 5 | 1 | 5 | 一次試験 | 62 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 6 | 1 | 6 | 一次試験 | 83 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 7 | 1 | 7 | 一次試験 | 62 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 8 | 1 | 8 | 一次試験 | 77 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 9 | 1 | 9 | 一次試験 | 81 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
+----+------------+------------+--------------+-------+---------------------+---------------------+
Reference
이 문제에 관하여(9일차: 대학생 데이터(주 데이터)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/OriverK/items/80dc52ba9753f8bf6c82
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# Studentテーブル
rails generate scaffold Student name:string email:string gender:integer age:integer opinion:text
# Subjectテーブル
rails generate scaffold Subject name:string max_score:integer
# Clubテーブル
rails generate scaffold Club name:string
# ExamResultテーブル
rails generate scaffold ExamResult student:references subject:references name:string score:integer
# ClubStudentテーブル(中間テーブルなので最後
rails generate scaffold ClubStudent student:references club:references name:string
mysql 측면 반영
rails db:migrate
테이블 간의 상관성 정의
참조 필요: 활성 레코드 연관
일본어 버전 있어요.
참조: 활동 레코드 연관
app/models/student.rb
class Student < ApplicationRecord
has_many :exam_results
has_many :subjects, through: :exam_results
has_many :club_students
has_many :clubs, through: :club_students
end
app/models/subject.rbclass Subject < ApplicationRecord
has_many :exam_results
has_many :students, through: :exam_results
end
app/models/exam_result.rbclass ExamResult < ApplicationRecord
belongs_to :student
belongs_to :subject
end
주 키 측의 설정 결과로 인해 중간 테이블 측의 설정이 자동으로 변경되었다app/models/club.rb
class Club < ApplicationRecord
has_many :club_students
has_many :students, through: :club_students
end
app/models/club_student.rbclass ClubStudent < ApplicationRecord
belongs_to :student
belongs_to :club
end
마스터 생성
학생 테이블로
console(1..100).each do |num|
if num % 2 == 0
gen = 0
ag = 0
at = 0
else
gen = 1
ag = 1
at = 1
end
op = (0..20).map{('あ'..'わ').to_a[rand(26)]}.join
user = Student.create(name: "taro-#{num}", email: "val-#{num}@gmail.com", gender: gen, age: ag, opinion: op)
end
클럽 테이블로
consoleClub.create(name: '自転車')
Club.create(name: 'サッカー')
Club.create(name: 'バスケットボール')
Club.create(name: 'バレーボール')
Club.create(name: '空手')
Club.create(name: '水泳')
Club.create(name: '登山')
Club.create(name: '陸上')
Club.create(name: 'バイク')
Club.create(name: '英会話')
Club.create(name: 'カメラ')
Club.create(name: '軽音')
Club.create(name: 'サーフィン')
테이블로
consoleSubject.create(name: '数学', max_score: 200);
Subject.create(name: '国語', max_score: 200);
Subject.create(name: '英語', max_score: 200);
Subject.create(name: '化学', max_score: 100);
Subject.create(name: '物理', max_score: 100);
Subject.create(name: '生物', max_score: 100);
Subject.create(name: '世界史', max_score: 100);
Subject.create(name: '日本史', max_score: 100);
Subject.create(name: '地理', max_score: 100);
(0..20).map{('아'...'와').to_a[rand(26)]}.join
이것저것 가득 찼다
범위 대상
문자도 쓸 수 있어요.
맵 방법
요소의 수량을 반복하여 블록의 반환 값을 집합한 그룹을 만들고 되돌려줍니다.
collect 방법의 별명입니다.# 配列の入った変数.map {|変数名| 処理内容 }
numbers = ["68", "65", "6C", "6C", "6F"]
p numbers.map {|item| item.to_i(16) }
[104, 101, 108, 108, 111]
#上では16進数を10進数に変換
to_a(Array)
패턴 객체 복귀
rand(max)
max가 0일 때 0.0 이상, 1.0 실수 미만, 정수일 때 0 이상, max보다 작은 정수
join(sep =)
join 방법은 그룹의 모든 요소를 문자열로 변환하고 매개 변수sep를 구분자로 조합한 문자열을 되돌려줍니다.
매개 변수를 생략하면 구분자가 없고 요소가 조합된 문자열이 됩니다
연결 여부 확인
우선,student id에 데이터를 1번으로 삽입해 보십시오.
railsc 방면에서는 잘하지 못하기 때문에 mysql 방면에서.
mysqlINSERT INTO exam_results (student_id,subject_id,name,score,created_at,updated_at) VALUE
(1,1,'一次試験',181,now(),now()),(1,2,'一次試験',146,now(),now()),(1,3,'一次試験',199,now(),now()),(1,4,'一次試験',99,now(),now()),(1,5,'一次試験',62,now(),now()),
(1,6,'一次試験',83,now(),now()),(1,7,'一次試験',62,now(),now()),(1,8,'一次試験',77,now(),now()),(1,9,'一次試験',81,now(),now());
consolestu = Student.first
stu.exam_results
# 結果
# 分かりづらいので、4教科目以降省略、および編集
stu = Student.first
SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
Student Load (0.2ms)
=> #<Student id: 1, name: "taro-1", email: "[email protected]", gender: 1, age: 1, opinion: "すぎこじぅかいけさぎさあえぃざきこぎごえぎ", created_at: "2019-03-16 11:02:23", updated_at: "2019-03-16 11:02:23">
stu.exam_results
ExamResult Load (0.2ms) SELECT `exam_results`.* FROM `exam_results` WHERE `exam_results`.`student_id` = 1 LIMIT 11
=> #<ActiveRecord::Associations::CollectionProxy
[#<ExamResult id: 1, student_id: 1, subject_id: 1, name: "一次試験", score: 181, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
#<ExamResult id: 2, student_id: 1, subject_id: 2, name: "一次試験", score: 146, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
#<ExamResult id: 3, student_id: 1, subject_id: 3, name: "一次試験", score: 199, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
결과SELECT `students`.* FROM `students` ORDER BY `students`.`id` ASC LIMIT 1
와SELECT` `exam_results`.* FROM `exam_results` WHERE `exam_results`.`student_id` = 1 LIMIT 11
를 사용하면 MySQL에서도 볼 수 있습니다.마땅히
MySQL
SELECT students.* FROM students ORDER BY students.id ASC LIMIT 1;
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
| id | name | email | gender | age | opinion | created_at | updated_at |
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
| 1 | taro-1 | [email protected] | 1 | 1 | すぎこじぅかいけさぎさあえぃざきこぎごえぎ | 2019-03-16 11:02:23 | 2019-03-16 11:02:23 |
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
SELECT exam_results.* FROM exam_results WHERE exam_results.student_id = 1 LIMIT 11;
+----+------------+------------+--------------+-------+---------------------+---------------------+
| id | student_id | subject_id | name | score | created_at | updated_at |
+----+------------+------------+--------------+-------+---------------------+---------------------+
| 1 | 1 | 1 | 一次試験 | 181 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 2 | 1 | 2 | 一次試験 | 146 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 3 | 1 | 3 | 一次試験 | 199 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 4 | 1 | 4 | 一次試験 | 99 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 5 | 1 | 5 | 一次試験 | 62 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 6 | 1 | 6 | 一次試験 | 83 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 7 | 1 | 7 | 一次試験 | 62 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 8 | 1 | 8 | 一次試験 | 77 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 9 | 1 | 9 | 一次試験 | 81 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
+----+------------+------------+--------------+-------+---------------------+---------------------+
Reference
이 문제에 관하여(9일차: 대학생 데이터(주 데이터)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/OriverK/items/80dc52ba9753f8bf6c82
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
(1..100).each do |num|
if num % 2 == 0
gen = 0
ag = 0
at = 0
else
gen = 1
ag = 1
at = 1
end
op = (0..20).map{('あ'..'わ').to_a[rand(26)]}.join
user = Student.create(name: "taro-#{num}", email: "val-#{num}@gmail.com", gender: gen, age: ag, opinion: op)
end
Club.create(name: '自転車')
Club.create(name: 'サッカー')
Club.create(name: 'バスケットボール')
Club.create(name: 'バレーボール')
Club.create(name: '空手')
Club.create(name: '水泳')
Club.create(name: '登山')
Club.create(name: '陸上')
Club.create(name: 'バイク')
Club.create(name: '英会話')
Club.create(name: 'カメラ')
Club.create(name: '軽音')
Club.create(name: 'サーフィン')
Subject.create(name: '数学', max_score: 200);
Subject.create(name: '国語', max_score: 200);
Subject.create(name: '英語', max_score: 200);
Subject.create(name: '化学', max_score: 100);
Subject.create(name: '物理', max_score: 100);
Subject.create(name: '生物', max_score: 100);
Subject.create(name: '世界史', max_score: 100);
Subject.create(name: '日本史', max_score: 100);
Subject.create(name: '地理', max_score: 100);
# 配列の入った変数.map {|変数名| 処理内容 }
numbers = ["68", "65", "6C", "6C", "6F"]
p numbers.map {|item| item.to_i(16) }
[104, 101, 108, 108, 111]
#上では16進数を10進数に変換
우선,student id에 데이터를 1번으로 삽입해 보십시오.
railsc 방면에서는 잘하지 못하기 때문에 mysql 방면에서.
mysql
INSERT INTO exam_results (student_id,subject_id,name,score,created_at,updated_at) VALUE
(1,1,'一次試験',181,now(),now()),(1,2,'一次試験',146,now(),now()),(1,3,'一次試験',199,now(),now()),(1,4,'一次試験',99,now(),now()),(1,5,'一次試験',62,now(),now()),
(1,6,'一次試験',83,now(),now()),(1,7,'一次試験',62,now(),now()),(1,8,'一次試験',77,now(),now()),(1,9,'一次試験',81,now(),now());
consolestu = Student.first
stu.exam_results
# 結果
# 分かりづらいので、4教科目以降省略、および編集
stu = Student.first
SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
Student Load (0.2ms)
=> #<Student id: 1, name: "taro-1", email: "[email protected]", gender: 1, age: 1, opinion: "すぎこじぅかいけさぎさあえぃざきこぎごえぎ", created_at: "2019-03-16 11:02:23", updated_at: "2019-03-16 11:02:23">
stu.exam_results
ExamResult Load (0.2ms) SELECT `exam_results`.* FROM `exam_results` WHERE `exam_results`.`student_id` = 1 LIMIT 11
=> #<ActiveRecord::Associations::CollectionProxy
[#<ExamResult id: 1, student_id: 1, subject_id: 1, name: "一次試験", score: 181, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
#<ExamResult id: 2, student_id: 1, subject_id: 2, name: "一次試験", score: 146, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
#<ExamResult id: 3, student_id: 1, subject_id: 3, name: "一次試験", score: 199, created_at: "2019-03-16 14:33:04", updated_at: "2019-03-16 14:33:04">,
결과SELECT `students`.* FROM `students` ORDER BY `students`.`id` ASC LIMIT 1
와SELECT` `exam_results`.* FROM `exam_results` WHERE `exam_results`.`student_id` = 1 LIMIT 11
를 사용하면 MySQL에서도 볼 수 있습니다.마땅히MySQL
SELECT students.* FROM students ORDER BY students.id ASC LIMIT 1;
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
| id | name | email | gender | age | opinion | created_at | updated_at |
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
| 1 | taro-1 | [email protected] | 1 | 1 | すぎこじぅかいけさぎさあえぃざきこぎごえぎ | 2019-03-16 11:02:23 | 2019-03-16 11:02:23 |
+----+--------+-----------------+--------+------+-----------------------------------------------------------------+---------------------+---------------------+
SELECT exam_results.* FROM exam_results WHERE exam_results.student_id = 1 LIMIT 11;
+----+------------+------------+--------------+-------+---------------------+---------------------+
| id | student_id | subject_id | name | score | created_at | updated_at |
+----+------------+------------+--------------+-------+---------------------+---------------------+
| 1 | 1 | 1 | 一次試験 | 181 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 2 | 1 | 2 | 一次試験 | 146 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 3 | 1 | 3 | 一次試験 | 199 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 4 | 1 | 4 | 一次試験 | 99 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 5 | 1 | 5 | 一次試験 | 62 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 6 | 1 | 6 | 一次試験 | 83 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 7 | 1 | 7 | 一次試験 | 62 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 8 | 1 | 8 | 一次試験 | 77 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
| 9 | 1 | 9 | 一次試験 | 81 | 2019-03-16 14:33:04 | 2019-03-16 14:33:04 |
+----+------------+------------+--------------+-------+---------------------+---------------------+
Reference
이 문제에 관하여(9일차: 대학생 데이터(주 데이터)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/OriverK/items/80dc52ba9753f8bf6c82텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)