📚 INNER JOIN 쉽게 이해하기
🔍 INNER JOIN이란?
INNER JOIN은 두 테이블에서 공통된 데이터를 가져오는 방식이야. 조인 조건을 만족하는 두 테이블의 데이터만 결과에 포함돼. 조인 조건을 만족하지 않는 데이터는 결과에서 제외되기 때문에, 두 테이블의 교집합처럼 동작한다고 생각하면 돼.
🏫 학생과 도서 대출 기록 예시로 설명
테이블 구조:
• 학생 테이블(student): 학생들의 정보를 담고 있음 (학생 ID, 이름 등).
• 도서 대출 기록 테이블(book): 책을 빌린 기록을 담고 있음 (대출한 책의 정보, 대출 날짜, 학생 ID).
INNER JOIN을 적용한 경우:
학생이 책을 빌린 경우에만 그 학생의 정보와 대출 기록이 결과에 포함돼. 즉, 학생 정보와 대출 기록이 모두 있는 경우만 결과로 나타나고, 학생이 책을 빌리지 않았다면 그 학생의 정보는 결과에 포함되지 않아.
✅ INNER JOIN 쿼리 예시:
SELECT student.name, book.loan_date
FROM student
INNER JOIN book ON student.id = book.student_id;
🧑🏫 결과 해석:
• 이 쿼리는 학생 테이블과 도서 대출 기록 테이블에서 **조인 조건(student.id = book.student_id)**을 만족하는 데이터만 결과에 포함시킴.
• 즉, 책을 빌린 학생들의 정보와 그 대출 기록만 결과로 보여줘.
• 책을 빌리지 않은 학생은 결과에서 제외돼.
🎯 INNER JOIN의 핵심 포인트
1. 교집합 역할: 두 테이블 간의 공통된 데이터만 결과에 포함됨.
2. 조인 조건이 중요: 조건을 만족하는 데이터만 반환되므로, 조건이 맞지 않으면 결과에서 제외됨.
3. 효율적인 데이터 추출: 조인 조건을 만족하는 데이터만 가져오기 때문에, 불필요한 데이터는 제외하고 필요한 데이터만 추출 가능.
🏫 INNER JOIN과 OUTER JOIN의 차이점
• INNER JOIN: 양쪽 테이블에서 공통된 데이터만 가져옴. 조건을 만족하지 않는 데이터는 결과에 포함되지 않음.
• LEFT OUTER JOIN: 왼쪽 테이블의 모든 데이터를 가져오고, 오른쪽 테이블에서 일치하는 데이터가 없는 경우 NULL로 표시됨.
• RIGHT OUTER JOIN: 오른쪽 테이블의 모든 데이터를 가져오고, 왼쪽 테이블에서 일치하는 데이터가 없는 경우 NULL로 표시됨.
🔗 INNER JOIN의 장점
• 명확한 데이터 추출: 필요한 데이터만 가져오므로, 성능 최적화와 결과의 명확성을 높임.
• 조인 조건에 따른 정확한 결과: 테이블 간의 관계를 명확히 하여, 불필요한 데이터는 걸러내고, 조건을 만족하는 데이터만 반환.
📚 RIGHT OUTER JOIN 쉽게 이해하기
🔍 RIGHT OUTER JOIN이란?
RIGHT OUTER JOIN은 두 개의 테이블을 조인할 때 오른쪽 테이블의 모든 데이터를 결과에 포함시키는 방식이야. 오른쪽 테이블에서 일치하는 데이터는 그대로 출력되고, 왼쪽 테이블에서 일치하지 않는 데이터는 **NULL**로 표시돼.
🏫 책 대출 기록 예시로 설명
테이블 구조:
• 학생 테이블(student): 학생들의 정보를 담고 있음 (학생 ID, 이름 등).
• 도서 대출 기록 테이블(book): 책을 빌린 기록을 담고 있음 (대출한 책의 정보, 대출 날짜, 학생 ID).
RIGHT OUTER JOIN을 적용한 경우:
책을 빌린 기록을 모두 가져오고, 학생 테이블에 해당 학생 정보가 없는 경우, 학생의 이름은 NULL로 표시돼. 즉, 대출 기록이 있는 모든 데이터는 결과에 포함되며, 대출 기록에 해당하는 학생 정보가 없다면, 그 부분은 NULL로 채워진다는 뜻이야.
✅ RIGHT OUTER JOIN 쿼리 예시:
SELECT student.name, book.loan_date
FROM student
RIGHT OUTER JOIN book ON student.id = book.student_id;
🧑🏫 결과 해석:
• 이 쿼리는 도서 대출 기록에 있는 모든 데이터를 가져오고, 해당 대출 기록에 맞는 학생 정보를 왼쪽 테이블에서 가져와.
• 만약 어떤 책이 대출되었지만 그 대출자의 정보가 학생 테이블에 없으면, 그 학생의 정보는 NULL로 출력돼.
🏫 LEFT OUTER JOIN과의 차이점
• LEFT OUTER JOIN: **왼쪽 테이블(학생 테이블)**의 모든 데이터를 기준으로 조인을 수행해. 만약 어떤 학생이 책을 빌리지 않았다면, 그 학생의 정보는 결과에 포함되고 **대출 정보는 NULL**로 표시됨.
• RIGHT OUTER JOIN: **오른쪽 테이블(도서 대출 기록 테이블)**의 모든 데이터를 기준으로 조인을 수행해. 대출 기록은 모두 출력되고, 만약 학생 테이블에 해당 정보가 없으면, 그 학생 정보가 NULL로 출력됨.
✅ LEFT OUTER JOIN 쿼리 예시:
SELECT student.name, book.loan_date
FROM student
LEFT OUTER JOIN book ON student.id = book.student_id;
• 이 쿼리는 모든 학생 정보를 출력하고, 만약 학생이 책을 빌리지 않았다면 대출 정보는 NULL로 표시돼.
🎯 정리
• RIGHT OUTER JOIN: 오른쪽 테이블을 기준으로 모든 데이터를 가져오고, 왼쪽 테이블에 일치하는 데이터가 없으면 NULL로 표시됨.
• LEFT OUTER JOIN: 왼쪽 테이블을 기준으로 모든 데이터를 가져오고, 오른쪽 테이블에 일치하는 데이터가 없으면 NULL로 표시됨.
Tip💡
RDBMS는 Relational Database Management System의 약자야.
이 용어는 관계형 데이터베이스 관리 시스템을 의미하며, 데이터를 **테이블(관계형 구조)**로 저장하고 관리하는 시스템을 말해. RDBMS에서는 각 테이블이 서로 관계를 맺고 있으며, 이를 통해 데이터를 효율적으로 조회, 수정, 삭제할 수 있어. SQL(Structured Query Language)을 사용해 데이터를 관리하고, 테이블 간의 관계를 이용해 복잡한 쿼리 작업도 수행할 수 있어.
대표적인 RDBMS에는 MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server 등이 있어.
'Database > Mysql' 카테고리의 다른 글
MySQL 완벽 가이드: 기초부터 고급까지 (0) | 2024.08.21 |
---|