상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
양육권 변호사와 자녀의 권리 보호하기
양육권 변호사 꼭 필요한 순간, 언제일까?
세금 신고, 올해의 변화되는 법칙들
세금 신고, 간편한 전자신고 방법 소개
이더리움의 보안: 취약점과 예방책
은행 대출 조회로 비용 절감하는 방법
"마이너스 통장, 대출과 무엇이 다를까?"
마이너스 대출, 신용 점수에 미치는 영향은?
마이너스 대출, 상환 기간 단축의 필요성
마이너스 대출, 경제적 위기를 극복하는 방법
결혼 자금 마련을 위한 은행 대출 한도
대출 최대 신청 시 체크리스트
Previous
Next
수정하기 - MySQL에서 many-to-many 관계를 구현하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
MySQL에서 many-to-many 관계를 구현하는 방법은 주로 세 개의 테이블을 사용하는 것입니다. 이 관계는 두 개의 엔티티 간의 복잡한 상호작용을 나타내며, 각 엔티티는 서로 여러 개의 관계를 가질 수 있습니다. 예를 들어, 학생과 수업 간의 관계를 생각해 볼 수 있습니다. 한 학생은 여러 수업을 수강할 수 있고, 한 수업은 여러 학생이 수강할 수 있습니다. 1. 기본 테이블 설계 먼저, 두 개의 기본 테이블을 정의합니다. 예를 들어, `students`와 `courses`라는 두 개의 테이블을 생성할 수 있습니다. ```sql CREATE TABLE students ( student_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL ); CREATE TABLE courses ( course_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(100) NOT NULL ); ``` 2. 조인 테이블 생성 many-to-many 관계를 구현하기 위해서는 조인 테이블(또는 중간 테이블)을 생성해야 합니다. 이 테이블은 두 개의 기본 테이블의 기본 키를 <a href='https://sangseek.com/sangseeks/외래 키/ko'>외래 키</a>로 포함합니다. 예를 들어, `<a href='https://sangseek.com/sangseeks/enrollment/ko'>enrollment</a>s`라는 조인 테이블을 생성할 수 있습니다. ```sql CREATE TABLE enrollments ( student_id INT, course_id INT, PRIMARY KEY (student_id, course_id), FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (course_id) REFERENCES courses(course_id) ); ``` 위의 SQL 문에서 `enrollments` 테이블은 `student_id`와 `course_id`를 기본 키로 설정하여 각 학생과 수업 간의 관계를 고유하게 식별합니다. 또한, 외래 키 제약 조건을 통해 `students`와 `courses` 테이블의 데이터 무결성을 유지합니다. 3. 데이터 삽입 이제 데이터를 삽입할 수 있습니다. 먼저 학생과 수업을 추가한 후, 조인 테이블에 관계를 추가합니다. ```sql -- 학생 추가 INSERT INTO students (name) VALUES ('Alice'); INSERT INTO students (name) VALUES ('Bob'); -- 수업 추가 INSERT INTO courses (title) VALUES ('Mathematics'); INSERT INTO courses (title) VALUES ('Science'); -- 학생과 수업의 관계 추가 INSERT INTO enrollments (student_id, course_id) VALUES (1, 1); -- Alice가 Mathematics 수업을 수강 INSERT INTO enrollments (student_id, course_id) VALUES (1, 2); -- Alice가 Science 수업을 수강 INSERT INTO enrollments (student_id, course_id) VALUES (2, 1); -- Bob이 Mathematics 수업을 수강 ``` 4. 데이터 조회 조인 테이블을 사용하여 학생과 수업 간의 관계를 조회할 수 있습니다. 예를 들어, 모든 학생과 그들이 수강하는 수업을 조회하려면 다음과 같은 쿼리를 사용할 수 있습니다. ```sql <a href='https://sangseek.com/sangseeks/SELECT/ko'>SELECT</a> s.name AS student_name, c.title AS course_title FROM enrollments e JOIN students s ON e.student_id = s.student_id JOIN courses c ON e.course_id = c.course_id; ``` 이 쿼리는 학생의 이름과 그들이 수강하는 수업의 제목을 반환합니다. 5. 데이터 수정 및 삭제 조인 테이블을 통해 관계를 수정하거나 삭제할 수도 있습니다. 예를 들어, 특정 학생이 수업을 더 이상 수강하지 않도록 하려면 다음과 같은 쿼리를 사용할 수 있습니다. ```sql DELETE FROM enrollments WHERE student_id = 1 AND course_id = 2; -- Alice가 Science 수업을 삭제 ``` 결론 MySQL에서 many-to-many 관계를 구현하는 것은 조인 테이블을 사용하는 것이 가장 일반적인 방법입니다. 이 방법은 데이터베이스의 정규화 원칙을 따르며, 데이터 무결성을 유지하는 데 도움을 줍니다. 이러한 구조를 통해 복잡한 관계를 효율적으로 관리하고, 필요한 데이터를 쉽게 조회할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기