본문 바로가기

Skill Sets/SQL

[SQL] SQL 쿼리 양식 및 작성 규칙

SMALL

안녕하세요! 데코입니다!

 

오늘은 SQL 쿼리를 작성할 때의 쿼리 양식 및 작성 규칙에 대해서 포스팅하려고 합니다!

 

바로 포스팅 시작할게요! :)

 

 


 

1. SQL 쿼리 양식 및 작성 규칙의 필요성

제가 여러 프로젝트를 수행하면서 다양한 유형으로 SQL 쿼리를 작성하는 분들을 보았었습니다.

물론 쿼리 작성 방법이 다르다고 출력되는 결과물이 다른 것은 아니지만,

SQL쿼리 수정과 유지보수 입장에서 공통적인 양식이 있으면 좋겠다고 생각이 들었어요!

이번 포스팅은 SQL 쿼리를 작성하면서 좋은 쿼리를 짜기 위해 고민을 하면서 만들어본 규칙입니다.

저도 이 양식을 따라서 작성하려고 노력하고 있습니다.

 

앞으로 작성하는 SQL 풀이 문제들도 위 양식으로 통일시키려고 합니다.

 

양식을 이용하니까 작성한 쿼리가 한눈에 파악이 되는 것이 가장 큰 장점이라고 생각이 들고

 

다른 분석가 혹은 다른 개발자가 보아도 쉽게 이해하고 수정이 가능할 것 같아서 만족스럽습니다! 

 

최고의 양식이라는 것은 없기 때문에, 혹시나 더 좋은 방법이 있으면 공유해주세요!


반영해서 계속 업데이트 해볼게요! :)

 


 

2. SQL 쿼리 양식 및 작성 규칙(+ 예시)

 

•  SQL 쿼리 양식은 통일해서 작성한다. 이를 통해 다른 분석가 혹은 다른 개발자도 SOL 구문을 이해하기 쉽도록 작성한다.


•  SQL 튜닝 또는 유지보수를 할 때를 고려하여, 이해가 쉽도록 SOL 구문의 가로길이는 최대는 100자 이하가 되도록 한다.


•  SQL 구문에 공백 라인이 없도록 작성한다.


•  테이블명, 컬럼명, 함수명 등은 모두 대문자로 통일하여 작성한다.


•  SQL 쿼리 구문의 왼쪽 세로줄을 맞추어서 BLOCK 단위로 쉽게 이해할 수 있도록 작성한다.


•  앞은 6자리에 명령문을 작성하고, 2칸의 공백을 둔다(TAB을 사용하는 경우 4칸이 들여쓰기가 되므로)


•  GROUP BY와 ORDER BY를 이용하는 경우 각각 GROUP/ORDER 이후 엔터로 구분하고 다음 라인에 BY문을 작성한다. 

 

•  컬럼과 컬럼 사이, 테이블과 테이블 사이는 엔터로 구분한다.


•  WHERE 조건문 시작에  'WHERE 1=1'으로 시작하여 그 아래 AND부터 조건을 작성한다.


•  WHERE 조건문에 한 라인에 하나의 조건을 둔다.


•  WHERE 조건문에서 '=' 사이에는 공백 한자리를 두어 구분한다.


•  WHERE 조건문에서 'NOT' 사용을 지양한다. '='이 가장 빠른 결과를 출력한다.

 

•  SELECT 절에 특별한 이유가 있는 것이 아니라면 ' * '(전체 컬럼 조회)를 사용하지 않는다. 필요한 열만 명시해준다.


•  한 라인에 하나의 컬럼을 기재하여 컬럼이 잘 보이도록 한다.


•  괄호 다음엔 공백을 두지 않는다.


•  GROUP BY 절 사용 이후 정렬된 결과가 필요하다면 ORDER BY를 기재해서 명시해준다.


•  ROWNUM을 사용하는 경우에는 원하는 순서가 나오기 위해 ORDER BY가 선행되어야 한다.


•  DISTINCT는 정렬하는 작업을 포함하므로, 사용을 지양한다.

 

-- [ SQL 쿼리 예시 ]
SELECT  TAT.COLUMN_1
	, TAT.COLUMN_2
        , TAT.COLUMN_3
        , TBT.COLUMN_4
        , TBT.COLUMN_5
        , MAX(TBT.COLUMN_6) AS MAX_COLUMN_6
        , MIN(TBT.COLUMN_7) AS MAX_COLUMN_7
  FROM  TABLE_A_TEST AS TAT
  	, TABLE_B_TEST AS TBT
 WHERE  1=1
 	AND TAT.COLUMN_1 = 'A'
 GROUP
    BY  TAT.COLUMN_1
 ORDER
    BY  TAT.COLUMN_1 ASC

 

3. SQL 쿼리 양식 및 작성 규칙의 특징

제가 다른 SQL 쿼리들을 참고하면서

 

이 양식의 가장 큰 특징은 앞 8자리에서 6자리는 명령문을 이용하고,

 

2자리는 공백을 두어서 작성을 한다는 부분 같아요!

 

이렇게 하니까 자연스럽게 이용되는 명령어가 보이고

 

TAB을 통해 들여쓰기를 하면서 빠르게 작성도 가능하고

 

정리된 느낌이 들어서 개인적으로 가장 선호합니다! 

 

 



이번에는 SQL 쿼리를 작성할 때의 쿼리 양식 및 작성 규칙에 대해서 작성해 보았습니다!

 

 

양식 적용 이전과 이후 쿼리를 비교해서 보면

 

확실히 쿼리 양식을 적용한 것이 어떤 테이블에서 어떤 컬럼을 이용했는지

 

어떤 조건을 통해 데이터를 추출했는지 등 정보가 명확하게 잘 보이는 것 같네요!

 


설명이 어려운 부분 혹은 잘 이해가 안 가는 부분

그리고 더 궁금한 내용이 있다면

언제든지 댓글로 남겨주세요!

빠르게 궁금증을 해결해 드릴게요!

공감과 댓글은 큰 힘이 됩니다!

오늘도 블로그 방문해 주시고

포스팅 읽어주셔서 감사합니다!

 

 

LIST