SQL 포매터

한 줄로 뭉쳐 있거나 들여쓰기가 엉킨 SQL 쿼리를 보기 좋게 정렬합니다. 방언과 들여쓰기 칸 수를 선택할 수 있습니다.

켜면 줄바꿈·들여쓰기를 제거해 한 줄로 만듭니다.

SQL 포매터란

한 줄로 길게 이어진 SQL이나 들여쓰기가 제각각인 쿼리는 읽기 어렵습니다. SQL 포매터는 SELECT·FROM·WHERE·JOIN 같은 키워드를 기준으로 줄을 나누고 일관된 들여쓰기를 적용해, 쿼리 구조를 한눈에 파악할 수 있게 정렬해 줍니다. 코드 리뷰, 쿼리 디버깅, 로그에 찍힌 SQL 정리에 유용합니다. 입력한 SQL은 브라우저에서만 처리되어 외부로 전송되지 않습니다.

사용법

  • 방언을 사용 중인 데이터베이스(MySQL·PostgreSQL 등)에 맞게 선택합니다. 방언에 따라 예약어와 함수 목록이 달라 정렬 결과가 조금씩 다를 수 있어요.
  • 원하는 들여쓰기 칸 수(2칸 또는 4칸)를 고릅니다.
  • 키워드 대소문자를 대문자(UPPER)·소문자·유지 중에서 선택해 SELECT·FROM 같은 키워드 표기를 통일할 수 있어요.
  • 입력창에 SQL을 붙여넣으면 자동으로 정렬되며, 정렬 버튼으로 다시 실행할 수도 있습니다.
  • 결과 오른쪽 위 복사 버튼으로 클립보드에 복사할 수 있습니다.

정렬 원리와 옵션

포매터는 SQL 문장을 토큰(키워드·식별자·연산자·괄호 등) 단위로 분석한 뒤, 절(clause)이 시작되는 지점에서 줄을 바꾸고 하위 요소에 들여쓰기를 적용합니다. 그래서 원본에 줄바꿈이 전혀 없어도 SELECT·FROM·WHERE·GROUP BY·ORDER BY 같은 절이 각각의 줄로 분리돼요. 반대로 한 줄로 압축(minify) 옵션을 켜면 줄바꿈과 연속된 공백을 한 칸으로 줄여, 코드에 문자열로 삽입하기 좋은 형태로 만듭니다. 대소문자 옵션은 키워드와 함수 이름에만 적용되며, 테이블·컬럼 이름이나 문자열 리터럴 안의 값은 원래대로 보존합니다.

실무 활용 예시

  • 코드 리뷰: 동료가 한 줄로 붙여 보낸 쿼리를 정렬해 어떤 조인과 조건이 걸렸는지 빠르게 확인해요.
  • 로그 분석: 애플리케이션 로그나 슬로우 쿼리 로그에 한 줄로 찍힌 SQL을 보기 좋게 펴서 원인을 추적합니다.
  • ORM 디버깅: JPA·MyBatis 등이 생성한 긴 SQL을 정렬해 의도한 대로 만들어졌는지 검증해요.
  • 문서화: 정렬된 쿼리를 위키나 README에 붙여 팀이 같은 형식으로 공유합니다.

주의점·팁

포매터는 문법을 정리할 뿐 쿼리의 의미를 바꾸지 않습니다. 실행 결과나 성능은 그대로예요. 방언을 실제 사용하는 DB와 맞추면 예약어 인식이 정확해져 결과가 더 깔끔합니다. 여러 문장을 세미콜론(;)으로 이어 붙여도 각 문장이 순서대로 정렬됩니다. 다만 따옴표나 괄호의 짝이 맞지 않는 등 문법이 크게 어긋난 SQL은 정렬에 실패할 수 있으니, 오류가 나면 입력을 점검한 뒤 다시 시도하세요.

자주 묻는 질문

입력한 SQL이 서버로 전송되나요?

아니요. 모든 정렬은 브라우저 안에서만 실행되며 입력한 SQL은 서버로 전송되거나 저장되지 않습니다.

어떤 데이터베이스 방언을 지원하나요?

SQL 표준, MySQL, PostgreSQL, MariaDB, SQLite, T-SQL(SQL Server)을 지원합니다. 방언을 선택하면 해당 문법에 맞게 키워드와 함수가 정렬됩니다.

들여쓰기 칸 수를 바꿀 수 있나요?

네. 2칸 또는 4칸 들여쓰기를 선택할 수 있으며, 선택 즉시 결과에 반영됩니다.

키워드를 대문자로 통일할 수 있나요?

네. 키워드 대소문자 옵션에서 대문자(UPPER)·소문자·유지를 고르면 SELECT·FROM 같은 키워드와 함수 이름의 표기를 일괄로 맞출 수 있습니다. 테이블·컬럼 이름과 문자열 값은 바뀌지 않습니다.

쿼리를 한 줄로 압축할 수도 있나요?

네. '한 줄로 압축(minify)' 옵션을 켜면 줄바꿈과 연속 공백을 한 칸으로 줄여 코드에 삽입하기 좋은 한 줄 SQL로 만듭니다.

정렬되지 않고 오류가 나면 어떻게 하나요?

문법이 크게 어긋난 SQL은 정렬에 실패할 수 있습니다. 방언을 바꾸거나 따옴표·괄호가 짝이 맞는지 확인한 뒤 다시 시도하세요.