반응형
JOIN은 SQL에서 둘 이상의 테이블을 연결하여, 관련 있는 데이터를 조합해 하나의 결과로 보여주는 연산입니다. INNER JOIN, NATURAL JOIN, EQUI JOIN에 대해 정리해 보겠습니다.
INNER JOIN
두 테이블 간 공통된 값을 기준으로 일치하는 행만 반환하는 JOIN 방식입니다. 일반적으로 ON 절을 사용해서 두 테이블을 연결할 기준(column)을 지정합니다. 공통되는 값이 있는 행만 결과로 보여주기에, 조건을 만족하지 않으면 해당 행은 결과에 포함되지 않습니다.
SELECT E.FirstName, D.DeptName
FROM Employee E
INNER JOIN Department D
ON E.DeptID = D.DeptID;
이 쿼리는 Employee 테이블과 Department 테이블에서 DeptID가 같은 레코드만 결과로 반환합니다.
이 경우 DeptID = 30은 Employee 테이블에 존재하지 않습니다.
FirstName | DeptName |
Alice | HR |
Bob | IT |
Carol | HR |
그러므로 위와 같은 테이블이 반환됩니다.
EQUI JOIN
INNER JOIN과 거의 같지만, 조인 조건을 WHERE 절에서 등호(=) 로 지정합니다.
SELECT E.FirstName, D.DeptName
FROM Employee E, Department D
WHERE E.DeptID = D.DeptID;
결과는 INNER JOIN과 완전히 같고, 단지 작성 방식만 다를 뿐입니다.
NATURAL JOIN
공통된 이름을 가진 컬럼을 자동으로 찾아서 JOIN 조건 없이 조인합니다. 두 테이블에 동일한 컬럼 이름이 있어야 합니다.
SELECT Name, DeptName
FROM Employee
NATURAL JOIN Department;
여기서는 Employee.DeptID = Department.DeptID 를 자동으로 추론해서 JOIN합니다.
위의 예시에서는 공통 컬럼들(STUDENT_ID, YEAR)을 기준으로 조인합니다.
SELECT *
FROM STUDENT
NATURAL JOIN ENROLLMENT;
STUDENT_ID | YEAR | NAME | MAJOR | COURSE_ID | GRADE |
1001 | 2 | Alice | CS | CS101 | A |
1002 | 3 | Bob | Math | MATH201 | B |
두 개의 레코드만 출력됩니다.
반응형
'Computer Science > SQL' 카테고리의 다른 글
SQL | 관계형 데이터베이스 설계 (vetdb에서 Owner와 Pet 테이블 만들기) - 1 (2) | 2025.04.25 |
---|---|
SQL | OUTER JOIN (0) | 2025.04.24 |
SQL | 관계형 데이터베이스에서 Cartesian Product란? (0) | 2025.04.22 |
SQL | UNION과 DIFFERENCE 정리 (0) | 2025.04.21 |
SQL | Selection과 Projection 정리 (0) | 2025.04.20 |