2022. 6. 10. 14:02ㆍTIL💡/Database
1. 예약어는 대문자로
SELECT
, FROM
, GROUP BY
, HAVING BY
등 SQL 예약어를 대문자로 작성한다.
2. 행갈이를 자주 하자
가독성을 향상할 수 있다.
3. 행갈이를 더! 자주 하자
SELECT day
, time
, SUM(total_bill)
FROM tips
WHERE sex = 'Female'
AND smoker = 'Yes'
GROUP BY day
, time
만약 한 칼럼만 남기고 싶을 때 앞에 주석 처리를 하면 간편하게 코드를 수정할 수 있다.
WHERE
조건절에서도AND
, OR
이 붙을 때마다 행갈이를 해주면 조건에 대한 출력을 수정하기 간편하다.
SELECT day
-- , time
, SUM(total_bill)
FROM tips
WHERE sex = 'Female'
AND smoker = 'Yes'
GROUP BY day
-- , time
가끔 SQL을 잘하는 분들을 보면 WHERE
절이 시작하자마자 1 = 1
이라는 아무 의미 없는 조건을 넣어주고 행갈이를 한 다음 진짜 필터링 조건을 쓰기 시작하기도 하더라..
SELECT day
, time
, SUM(total_bill)
FROM tips
WHERE 1 = 1
-- AND sex = 'Female'
AND smoker = 'Yes'
GROUP BY day
, time
4. 주석을 쓰자
코드를 쓴 의도를 짧게 적어놓는 습관을 들이는 게 좋다.
특히 서브쿼리가 많아지고 코드가 길어질수록 각 코드 단락이 어떤 의도로 작성되었는지 적어 놓아야 다음에 그 코드를 읽었을 때 이해할 수 있다.
SELECT AVG(sales) avg_sales
FROM (
-- 요일별 매출액 합계 계산
SELECT day -- 일별 X 요일별 O
, SUM(total_bill) sales
FROM tips
WHERE sex = 'Female' -- 결제자의 성별이 여성인 경우
GROUP BY day
) daily_sales
주석은 서브쿼리 단위로 쓸 수 있고, CASE
, IF
조건문 또는 WHERE
절 필터링 조건을 쓸 때도 적어주는 것이 좋다.
- 서브쿼리의 단위로 의미를 적어준다.
- 조건에 적는 주석의 경우, 단순히 '이 조건은 이거다(What)'라고 서술하는 건 별로 의미가 없다. 그러나 컬럼 이름만 보고 해석에 오해가 있을 수 있거나, 추가 설명이 필요한 경우에는 적어주는 것이 좋다.
- 조건이 왜 필요한지(Why), 어떻게 동작하는지(How) 같은 내용을 자세하게 적어 놓으면 다음 코드에 반드시 도움을 준다.
5. Alias를 잘 쓰자
주석을 잘 적는 것도 중요하지만, 결국 코드를 잘 써야 전체를 빠르게 이해할 수 있다.
참고
https://yozm.wishket.com/magazine/detail/1519/
'TIL💡 > Database' 카테고리의 다른 글
[Python] Celery로 비동기 실시간 데이터 적재 및 분석 처리 (0) | 2022.09.09 |
---|---|
[MongoDB] 소개와 설명 (0) | 2022.06.25 |
[SQL] FROM절 JOIN 형태 (0) | 2022.03.29 |
[EF Core]Entity Framework core (0) | 2022.03.13 |
[Redis] 데이터 타입의 최적화 (0) | 2022.02.27 |