Inner JOIN(내부조인) - Equi JOIN(동등조인)
Ex) dnumber=dno 인 모든 튜플을 선택하라
SELECT *
FROM EMPLOYEE,
DEPARTMENT
WHERE Dnumber = Dno;
-- 동등조인의 명시적인 표현
SELECT *
FROM EMPLOYEE
INNER JOIN DEPARTMENT ON employee.dno = department.Dnumber;
Natural JOIN(자연 조인)
- 동일한 타입과 이름을 가진 컬럼을 조인 조건으로 이용하는 조인을 간단히 표현하는 방법
- 반드시 두 테이블 간의 동일한 이름, 타입을 가진 컬럼이 필요함
- 조인에 이용되는 컬럼은 명시할 필요 X → 자동으로 조인에 사용됨.
- 동일한 이름을 가진 컬럼이어도, 데이터 타입이 다르면 에러가 발생함.
Outer JOIN(외부 조인)
- LEFT OUTER JOIN
- 결과에 왼쪽 테이블의 모든 튜플이 나옴.
- 오른쪽 테이블에 매칭되는 튜플이 없으면 NULL로 채움.
- RIGHT OUTER JOIN
- 결과에 오른쪽 테이블의 모든 튜플이 나옴.
- 왼쪽 테이블에 매칭되는 튜플이 없으면 NULL로 채움.
Q8B. LEFT OUTER JOIN
SELECT E.Lname AS Employee_Name,
S.Lname As Supervisor_Name
FROM Employee AS E
LEFT OUTER JOIN EMPLOYEE AS S ON E.Super_ssn = S.Ssn;
SELECT E.Lname AS Employee_Name, S.Lname As Supervisor_Name
- 이 부분은 결과 집합에 포함할 열을 선택함.
- Employee" 테이블의 "Lname" 열을 "Employee_Name"으로 별칭 지정하고, "Employee" 테이블을 다시 별칭 "E"로 사용함.
- 또한 "Employee" 테이블을 다시 사용하여 "Super_ssn" 열과 "Ssn" 열을 기반으로 슈퍼바이저의 "Lname" 열을 "Supervisor_Name"으로 별칭 지정함.
FROM Employee AS E
- 이 부분은 "Employee" 테이블을 별칭 "E"로 사용하여 주요 테이블로 지정함.
LEFT OUTER JOIN EMPLOYEE AS S ON E.Super_ssn = S.Ssn
- 이 부분은 왼쪽 조인을 정의함. "E" 테이블(직원)과 "S" 테이블(슈퍼바이저) 간의 조인을 설정함.
- "E.Super_ssn" 열과 "S.Ssn" 열을 기반으로 조인 조건을 정의하며, 이것은 직원과 그들의 슈퍼바이저 간의 관계를 나타냄.
- 왼쪽 조인은 "E" 테이블(직원)의 모든 행을 유지하고, 슈퍼바이저가 있는 경우 슈퍼바이저의 정보를 반환함.