3주차 SQL 기초와 데이터 분석
SQL 쿼리 문법을 활용하여 데이터 분석을 진행하기(4)
학습 주제: 효율적인 SQL 코드 작성하기
1. 테이블을 집합으로 생각하기
--> 최대한 작게 만들어 놓고 JOIN 하기
2. *, % 사용 지양하기
--> LIMIT 걸고 조회하기, 파티션이 있는 테이블인지 확인하고 파티션을 필터 조건으로 걸고 조회하기
SELECT clk_index,user_name, product_id
FROM clicks
WHERE date = '20231104'
LIMIT 10
--> 컬럼 수가 많은 테이블을 조회할 때 SELECT * 지양하기
--> LIKE 사용 시 % 제한적으로 사용하기
아래 예시에서 '23FW%' 대신 '23FW__' 쓴 것처럼
SELECT product_id, name
FROM products
WHERE name LIKE '23FW__'
LIMIT 10
3. 데이터 타입 잘 확인하기
--> 비교 연산자 쓸 때
--> WHERE 절에서 함수 적용 지양하기(index 못 써서 속도 느려짐, 쿼리 무거워짐)
4. JOIN 시 유의할 점
- JOIN 하는 테이블 간의 관계 고려하기(1:1, 1:n, n:n)
- 데이터 중복 있는지 확인
- 여러 가지 쿼리 방식 고려하기
5. 가독성 높이는 방법
- 서브쿼리보다는 WITH 구문이 가독성이 좋다
- WITH 절을 사용할 때 각 블록 이름을 잘 지정하자
- 쿼리가 복잡해지면 중간중간 주석 작성
공부하며 어려웠던 내용
아직 아주 복잡한 테이블을 갖고 쿼리를 작성해본 적은 없어서 크게 와닿지는 않았지만 SQL 튜닝 자체를 전문으로 하는 분들도 있는 만큼 꼭 짚고 넘어가야 하는 부분인 것 같다.
결국 모든 언어가 똑같다. 주석 잘 달기, 무겁지 않게, 여러 방법 생각해보기, 등등
무엇보다 언어의 구조를 잘 알면 위에 적은 것들을 애쓰며 외우지 않아도 저절로 적용할 수 있을 것이라 믿는다. 제대로 된 개념을 가지고 많이 연습해보는 것만이 살길
코드를 작성하는 마음가짐은 배려하는 마음가짐 같다 컴퓨터를 배려하고 나중에 읽을 사람을 배려하고
'SQL' 카테고리의 다른 글
데이터 웨어하우스, AWS, Redshift (0) | 2024.03.18 |
---|---|
NBA Players 실전 데이터 분석 (2) | 2024.03.08 |
데이터 타입 (0) | 2024.03.06 |
테이블 결합: JOIN, UNION, WITH (0) | 2024.03.05 |
DB Fiddle, 데이터 조회, 기초 SQL 함수 (0) | 2024.03.04 |