[MySQL] SQL 문장의 가독성 향상

기훈·2024년 7월 14일

MySQL

목록 보기
9/23

가독성의 중요성

  • 빠른 의도 파악

  • 빠른 디버깅

  • 유지보수 용의

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 fd1

5. and/or 조건 함께 사용시 반드시 괄호 명시

  • and 연산자는 or 연산자보다 우선 순위가 높아서, 괄호가 없는 경우 and를 먼저 처리함

6. 데이터 건수 조회는 count(*) 사용

0개의 댓글