[SQL] Subquery와 JOIN

coldrice99·2024년 8월 16일
0

🗃️ 데이터베이스에서 SubqueryJOIN의 이해

데이터베이스 쿼리 작성 시 자주 사용되는 개념인 SubqueryJOIN은 복잡한 데이터 분석 및 검색을 단순화해주는 중요한 도구이다. 이 글에서는 이 두 가지 개념에 대해 자세히 설명하고자 한다.


📌 Subquery란?

Subquery쿼리 결과를 다른 쿼리 내에서 다시 활용하는 것을 의미한다. 즉, 하나의 쿼리 내에 포함된 또 다른 쿼리를 말하며, 메인 쿼리가 실행되기 전에 먼저 실행된다. Subquery는 주로 WHERE 절, FROM 절, SELECT 절 등에서 사용되며, 데이터를 필터링하거나 추가 데이터를 계산하는 데 유용하다.

🔹 기본 형식:
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 = (SELECT 컬럼명 FROM 테이블명 WHERE 조건);
🔹 예시:
SELECT name
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees WHERE department = 'Sales');

위 예시에서는 'Sales' 부서에서 가장 높은 급여를 받는 직원의 이름을 찾기 위해 Subquery를 사용하고 있다.


📌 JOIN이란?

JOIN두 개 이상의 테이블을 결합하여 사용하는 것을 의미한다. JOIN을 통해 여러 테이블에 저장된 데이터를 하나의 결과 집합으로 결합할 수 있다. JOIN에는 여러 종류가 있으며, 각 JOIN의 형태에 따라 결과가 달라진다.

🔹 주요 JOIN의 형태:
  1. INNER JOIN: 두 테이블에서 공통된 값이 있는 행만 결합하여 반환한다.
  2. LEFT JOIN (또는 LEFT OUTER JOIN): 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 결합하여 반환한다. 일치하는 행이 없으면 NULL을 반환한다.
  3. RIGHT JOIN (또는 RIGHT OUTER JOIN): 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 결합하여 반환한다. 일치하는 행이 없으면 NULL을 반환한다.
  4. FULL JOIN (또는 FULL OUTER JOIN): 두 테이블의 모든 행을 결합하여 반환하며, 일치하는 행이 없으면 NULL을 반환한다.
🔹 기본 형식:
SELECT A.컬럼명, B.컬럼명
FROM 테이블A A
JOIN 테이블B B ON A.공통컬럼 = B.공통컬럼;
🔹 예시:
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;

위 예시는 직원 테이블과 부서 테이블을 department_id라는 공통 컬럼을 통해 결합하여 직원 이름과 부서 이름을 함께 출력하고 있다.


🔍 결론

SubqueryJOIN은 SQL 쿼리 작성 시 매우 강력한 도구이다. Subquery는 보다 세부적인 조건으로 데이터를 필터링하거나 계산할 때 유용하며, JOIN은 여러 테이블에 걸친 데이터를 통합하여 분석할 때 필수적이다. 이 두 가지 기법을 잘 활용하면 복잡한 데이터베이스 작업도 손쉽게 처리할 수 있다.


profile
서두르지 않으나 쉬지 않고

0개의 댓글