오늘 학습한 내용
✨ 여러 번의 연산을 한 번에 끝낼 수 있다는 걸 알게 되었다. (Subquery)
쿼리를 짤 때 연산이 한 번에 끝나면 좋겠지만, 현실은 그렇지 않다는 걸 자주 느낀다.
문자를 먼저 바꾸고, 그걸 또 숫자로 바꾸고, 다시 연산해야 할 일이 생기니까
한 줄로 다 쓰다 보면 쿼리가 길어지고 복잡해지더라.
그래서 Subquery(서브쿼리) 라는 걸 쓰면 더 깔끔하게 정리할 수 있다는 걸 알게 되었다.
✅ Subquery를 쓰면 좋은 경우
여러 번의 연산을 한 번에 묶고 싶을 때
조건문에서 연산 결과를 써야 할 때
다른 쿼리의 결과를 조건에 넣고 싶을 때
💡 Subquery 기본 구조
SELECT column1, special_column
FROM (
SELECT column1, column2, 연산된결과 AS special_column
FROM table1
) a
안쪽에서 먼저 필요한 걸 가공하고, 바깥에서 그걸 활용하는 방식이다.
한눈에 쿼리 흐름이 보여서 훨씬 읽기 편하고 깔끔하다.
🔗 여러 테이블에서 데이터를 불러와야 할 때 JOIN을 쓸 수 있다는 걸 알게 되었다
예전엔 필요한 정보가 하나의 테이블에 다 있을 거라고 생각했는데,
현실은 주문은 주문 테이블, 결제 정보는 결제 테이블, 고객 정보는 또 다른 테이블…
각기 다른 곳에 흩어져 있더라.
그럴 땐 JOIN이라는 걸 써서 테이블들을 이어 붙이면 된다는 걸 알게 되었다.
✅ JOIN을 써야 할 때
💡 주문 금액은 주문 테이블에 있지만, 결제 방식은 결제 테이블에 있을 때
💡 주문자 정보를 확인하려면 고객 테이블에서 이름을 가져와야 할 때
💡 결제 수단에 따라 수수료율이 다를 때
이런 상황에서 JOIN이 정말 유용하다는 걸 느꼈다.
🔧 JOIN 기본 구조
👉 LEFT JOIN
SELECT 컬럼들
FROM 테이블1 a
LEFT JOIN 테이블2 b ON a.공통컬럼 = b.공통컬럼
기준 테이블(a)의 모든 데이터를 보여주고, 일치하는 게 테이블2에 있으면 붙여준다.
없으면 NULL로라도 보여준다.
👉 INNER JOIN
SELECT 컬럼들
FROM 테이블1 a
INNER JOIN 테이블2 b ON a.공통컬럼 = b.공통컬럼
두 테이블에서 조건이 일치할 때만 데이터를 보여준다.
딱 맞는 데이터만 가져오고 싶을 때 유용하다.
📌 오늘의 배움
연산을 여러 번 할 땐 Subquery로 쿼리를 깔끔하게 정리할 수 있다
서로 다른 테이블에 있는 데이터를 한 번에 조회하려면 JOIN을 쓰면 된다
생각보다 어렵지 않았고, 오히려 쓰고 나니까 쿼리 보는 눈도 트이는 느낌이다.
앞으로 더 복잡한 데이터도 무서워하지 않을 수 있을 것 같다.
학습하며 겪었던 문제점 & 에러
실습 문제들을 풀면서 GROUP BY에 대한 명확한 사용법을 잘 모르고 있었다는 것을 알게 되었다.
그래서 1주차 강의 자료부터 실습 문제들을 다시 풀어보며 완전히 체득할 때까지 반복할 생각이다.
5주차 완강이 목표였지만, 제대로 이해하지 못한 채 진도만 나가는 것은 오히려 독이 될 것 같아 복습하기로 했다.
내일 학습 할 것은 무엇인지
내일은 앞의 내용들을 복습하여 완전히 내것으로 만들고 5주차까지 완강할 예정이다.