본문 바로가기
카테고리 없음

[패스트캠퍼스] 데이터 분석 부트캠프 9주차 학습일지

by 데이터쿠 2024. 10. 18.
반응형

9주차 SQL 수업

 

데이터베이스 작업에서 MySQL의 다양한 쿼리 문법을 이해하는 것은 필수적이다.

이번 포스팅에서는 MySQL의 중요한 문법인 GROUP BY, HAVING, 다양한 JOIN 종류,

그리고 Subquery에 대해 개념과 예제를 소개한다.

 

1. GROUP BY

GROUP BY는 테이블의 데이터를 특정 열을 기준으로 그룹화할 때 사용된다.

주로 집계 함수(예: SUM, COUNT, AVG)와 함께 사용됩니다.

 

SELECT1, 집계함수(열2)
FROM 테이블명
GROUP BY1;
SELECT city, COUNT(*) AS total_customers
FROM customers
GROUP BY city;

 

 

2. HAVING

HAVING은 GROUP BY로 그룹화된 데이터에 조건을 적용할 때 사용된다.

WHERE와의 차이점은 HAVING이 집계된 결과에 필터를 적용한다.

SELECT1, 집계함수(열2)
FROM 테이블명
GROUP BY1
HAVING 집계함수(열2) 조건;
SELECT city, COUNT(*) AS total_customers
FROM customers
GROUP BY city
HAVING COUNT(*) > 10;

 

 

3. JOIN: 테이블 간 데이터 결합

JOIN은 여러 테이블에서 데이터를 결합하여 원하는 결과를 가져올 때 사용한다.

(1) INNER JOIN

두 테이블의 공통된 값을 가진 행만 반환한다.

SELECT A.열1, B.열2
FROM 테이블A A
INNER JOIN 테이블B B ON A.공통열 = B.공통열;
SELECT customers.name, orders.order_id
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;

 

(2) OUTER JOIN

하나의 테이블에 있는 모든 행을 반환하며, 다른 테이블에 매칭되는 값이 없으면 NULL로 채웁니다.

LEFT OUTER JOIN (LEFT JOIN) 예제

SELECT customers.name, orders.order_id
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;

 

4. Subquery (서브쿼리)

서브쿼리는 쿼리 안에 포함된 또 다른 쿼리입니다. 주로 SELECT, INSERT, UPDATE, DELETE 쿼리 내에서 사용됩니다.

(1) SELECT문 안의 Subquery

SELECT name, (SELECT COUNT(*) FROM orders WHERE orders.customer_id = customers.customer_id) AS order_count
FROM customers;

 

(2) WHERE절에 사용된 Subquery

SELECT name
FROM customers
WHERE customer_id IN (SELECT customer_id FROM orders WHERE total_amount > 100);
반응형