본문 바로가기
SQL/모두의SQL

6장 조인과 집합

by sj0020 2021. 7. 18.

02 동등조인 

 

03 외부조인 outer join

 

SELECT A.employee_id, A.first_name, A.last_name, B.department_id, B.department_name
FROM employees A, departments B
WHERE A.department_id(+) = B.department_id
ORDER BY A.employee_id

 모든 데이터를 다 띄울 테이블 열 옆에 (+) 를 붙인다

 

JOIN실무 활용 팁

1 조인을 사용할 때는 테이블에 별칭을 사용합니다. 필수&권장

 테이블 이름에 별칭을 사용하여 긴 테이블 이름을 축약하여 사용할 수 있습니다.

 별칭을 사용하면 SQL 문을 간략하게 만들 수 있어 가독성도 높아지고 SQL 문을 효율적으로 작성할 수 있습니다.

 길게 사용해도 되지만 가급적 짧게 사용하는 것이 좋습니다(필자는 주로 A, B, C, … 순서로 사용).

 SQL 로직이 복잡할 때는 테이블의 별칭에 의미를 부여해서 사용하는 것도 도움이 됩니다.
 employees → emp, departments → dept

 

2 테이블의 순서는 가장 중심이 되는 테이블을 앞에 기술합니다. 권장

 FROM 절에 기술되는 테이블의 순서를 가장 중심이 되는 테이블부터 기술하면, 조인할 때 SQL 로직을 확인하기가 수월해집니다.

 

3 조인하는 테이블이 여러 개라 논리적으로 복잡하게 느껴질 경우, AND 절 단위로 조인을 걸 때마다 결과를 확인하는 방법을 이용하면 정확한 결과를 출력할 수 있습니다.

 


05 집합 연산자

출처: https://csharp-video-tutorials.blogspot.com/2015/09/difference-between-union-intersect-and.html

UNION

SELECT department_id
FROM employees
UNION
SELECT department_id
FROM departments;

중복되는 department_id는 한번만 출력

UNION ALL

SELECT department_id
FROM employees
UNION ALL
SELECT department_id
FROM departments
ORDER BY department_id

INTERSET

MINUS

SELECT department_id
FROM departments
MINUS
SELECT department_id
FROM employees

위에서 아래꺼를 뺌