가독성의 중요성
빠른 의도 파악
빠른 디버깅
유지보수 용의
1. DISTINCT를 함수처럼 사용하는 형태 지양
2. LEFT JOIN 사용 방법 준수
LEFT JOIN 사용시 드리븐 테이블(조인 대상 테이블)에 대한 조건을 WHERE절에 명시하는 경우 INNER JOIN을 사용한 것과 동일한 결과가 출력된다
LEFT JOIN 사용 시에는 드리븐 테이블에 대한 조건은 ON절에 명시
LEFT JOIN는 필요한 경우에만 사용한다
- 1:1 관계로 LEFT JOIN하면서 드라이빙 테이블에 속해있는 컬럼만 조회하거나 count 쿼리를 실행하는 경우 LEFT JOIN을 제거
3. ORDER BY 절 없이 LIMIT n,m 문법 사용 지양
ORDER BY 절 없이 LIMIT 사용 되는 경우 의도파악 어려움
불필요한 LIMIT이라면 제거하거나 페이지네이션을 위한 것이라면 ORDER BY를 같이 사용하자
4. SELECT ... GROUP BY 쿼리에서 GROUP BY에 명시되지 않은 컬럼을 SELECT 절에서 참조하는 경우 의도에 맞게 집계 함수를 사용, 불필요한 경우에는 제거
SELECT fd1, SUM(fd2), COUNT(*) FROM tab GROUT BY fd15. and/or 조건 함께 사용시 반드시 괄호 명시
6. 데이터 건수 조회는 count(*) 사용