SQL 가독성을 높이는 다섯 가지 사소한 습관

2022. 6. 10. 14:02TIL💡/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/

 

SQL 가독성을 높이는 다섯 가지 사소한 습관 | 요즘IT

지독하게 읽기 힘든 SQL 문을 해석해 본 적 있으신가요? 마치 암호를 읽는 것처럼 어렵습니다. 파이선처럼 들여쓰기와 띄어쓰기를 문법적으로 강제하는 언어를 사용해 봤다면 SQL의 자유로움에

yozm.wishket.com