인프런에서 쿠폰을 준 게 있길래 데이터리안의 [백문이 불여일타] 데이터 분석을 위한 중급 SQL강의를 들었다. 완강까지는 4일 정도 걸렸다. 이제껏 SQL 문제풀이는 해본 적 없었는데 HackerRank나 LeetCode에서 여러 문제를 같이 풀어볼 수 있어 좋았다.
SQL 기본은 알고 있고 문제는 풀어본 적 없다면 추천한다👍👍 차근차근 듣다 보면 어렵지 않게 따라갈 수 있으니 난이도 걱정은🙅♂️
아래는 강의를 듣다 틈틈이 써둔 내용이다.
노션에서 블로그로 이사❗
🙋♂️1일 차 - 2일 차
COUNT
- NULL 값은 제외
- DISTINCT로 중복 제거
AVG
- NULL 값을 0으로 볼 것인지 아닌지 고려(나누는 수에 차이)
GROUP BY + 집계 함수
- 그루핑 하고 싶은 컬럼 SELECT문에 넣기
- 조건문은 HAVING으로 사용 (실행 순서❗)
CASE - END
- 조건 순서 위에서 아래로 실행
- 피벗테이블 만들 때 사용 가능
🍯TIP
- SELECT문에서는 들여 쓰기로 가독성 높이고 주석 쓰기 편하게 하기
- 주석한 줄 — 여러 줄 /* */
- 소수점 처리 시 올림 CEIL, 내림 FLOOR, 반올림 ROUND(값, 자릿수)
🙋♂️3일 차
JOIN
: 두 개 이상 테이블에서 사용
→ RDB에서는 null값이나 중복 값이 들어가 공간이 낭비되는 걸 막기 위해 테이블을 나눈다.
→ 즉, 효율을 위해 key값만 맞추고 쪼갠다.
헷갈릴 때는 아래 사이트 참고
INNER JOIN
- 두 테이블의 교집합
- 여러 줄 작성하기 가능 ⇒ 헷갈리니까 연습할 땐 AS 쓰면서 구분
LEFT JOIN, RIGHT JOIN
- INNER JOIN이 아니면 전부 OUTER JOIN
- LEFT JOIN은 왼쪽 데이터 기준 ⇒ 왼쪽 데이터는 싹 다 쓰겠다는 거
- 주로 LEFT JOIN만 사용 ⇒ 테이블 순서만 바꿔주면 되니까 굳이 RIGHT까지❌
🍯TIP
- 테이블 별명인 AS를 FROM에서 써서 코드를 간결하고 이해하기 쉽게 만들기
- NULL 확인해야 할 때는 = 아님 무조건 IS
- 날짜 계산 시 DATE_ADD(date, INTERVAL 1 MONTH)처럼 사용.
🙋♂️ 4일 차
UNION
- 데이터 이어 붙일 때 사용
- UNION에서는 중복 제거가 기본 값이고 전부 출력 시 UNION ALL 사용
🍯TIP
- SELECT는 SELECT ALL과 같은 기능이며 중복 제거 시 DISTINCT 옵션 사용
- MySQL에서 full outer join을 구현하고 싶으면 LEFT + UNION + RIGHT
- UNION에서의 정렬은 각 SELECT문이 아닌 마지막 쿼리에서 사용
- GROUP BY 할 때 2개 이상의 컬럼 사용 가능
완강하면 이런 멋드러진 수료인증서도 준다.
쪼금 기분 좋음ㅎ
'Programming > SQL' 카테고리의 다른 글
[SQL] WINDOW FUNCTION, REGEXP, UDF (feat. 데이터리안, 인프런) (0) | 2023.08.02 |
---|