본문 바로가기

SQL 포맷터

한 줄로 뭉친 SQL에 줄바꿈과 들여쓰기를 넣어 정렬합니다. 데이터베이스 종류(방언)에 맞춰 정렬 규칙이 달라집니다.

로딩 중...

왜 만들었나요

로그에 찍힌 쿼리는 늘 한 줄로 길게 이어져 있어서, JOIN이 몇 개인지 WHERE 조건이 어디까지인지 눈으로 세다 지치곤 했습니다. 붙여넣으면 쿼리 정렬이 바로 되게 만들었습니다.

Note

붙여넣은 쿼리는 서버로 전송되지 않습니다. 정렬이 전부 브라우저 안에서 이뤄져, 실제 운영 쿼리를 넣어도 기기 밖으로 나가지 않습니다.


SQL 포맷터 사용 방법

  1. SQL 포맷터 입력창에 정렬할 쿼리를 붙여넣고, 위쪽에서 방언(데이터베이스 종류)·키워드(UPPER·lower·유지)·들여쓰기를 고릅니다.

    SQL 포맷터에 한 줄로 붙어 있는 JOIN·GROUP BY 쿼리를 붙여넣고 방언 표준 SQL·키워드 UPPER·들여쓰기 2칸을 고른 화면

  2. 붙여넣으면 잠시 뒤 오른쪽에 정렬된 SQL이 자동으로 나옵니다(PC에서는 가운데 화살표 버튼을 눌러 즉시 정렬할 수도 있습니다). 복사 버튼으로 가져가세요.

    SELECT·FROM·LEFT JOIN·WHERE·GROUP BY·HAVING·ORDER BY가 줄바꿈과 들여쓰기로 정렬된 SQL 결과

이렇게 나옵니다

로그에서 복사한 한 줄짜리 쿼리를 넣으면 이렇게 나옵니다.

넣은 것
select u.id,u.name from users u join orders o on o.user_id=u.id where u.status='active' order by u.id desc

나온 것
SELECT
  u.id,
  u.name
FROM
  users u
  JOIN orders o ON o.user_id = u.id
WHERE
  u.status = 'active'
ORDER BY
  u.id DESC

알아두면 좋은 것

왜 데이터베이스 종류를 고르나

SQL은 표준이 있지만 제품마다 문법이 조금씩 다릅니다.

  • MySQL은 백틱(`)으로 이름을 감쌉니다
  • SQL Server는 대괄호([ ])를 씁니다
  • Oracle은 PL/SQL 전용 구문이 따로 있습니다

종류를 맞춰 주면 이런 표기 차이까지 알아보고 제대로 정렬합니다. 모르겠으면 표준 SQL로 두면 대체로 무난합니다.

지원하는 종류는 표준 SQL · MySQL · PostgreSQL · SQL Server · Oracle · SQLite · BigQuery 일곱 가지입니다.

고칠 수 있는 것들

항목선택지기본값
방언(데이터베이스 종류)7종표준 SQL
키워드UPPER · lower · 유지UPPER
들여쓰기 폭2칸 · 4칸2칸

붙여넣는 즉시 결과가 바뀌므로, 옵션을 눌러 가며 마음에 드는 모양을 찾으면 됩니다. 고른 설정은 같은 화면에 있는 동안 유지되고, 새로 열면 기본값(표준 SQL·UPPER·2칸)으로 돌아갑니다.

SQL 포맷터가 필요한 순간

한 줄로 뭉친 쿼리를 눈으로 해독하는 데 시간을 쓰고 있다면 SQL 포맷터가 대신합니다.

상황이유
로그에 찍힌 쿼리 읽기한 줄로 뭉친 걸 펼쳐서
남이 짠 쿼리 이해하기SELECT·WHERE 단위로 나뉘어 구조가 보임
코드 리뷰 전 정리팀 규칙에 맞춰 모양 통일
문서에 쿼리 첨부보기 좋은 형태로

이런 경우에는

정렬이 이상하게 돼요

원인은 대개 둘 중 하나입니다.

원인확인 방법
데이터베이스 종류가 안 맞음실제 쓰는 제품으로 바꿔 보세요
쿼리에 문법 오류가 있음실제로 도는 쿼리인지 확인하세요

특히 백틱(`)이나 대괄호([ ])가 든 쿼리는 종류를 맞춰야 제대로 읽습니다.

정렬 결과가 아예 안 나올 때는 크기부터 확인하세요. 붙여넣은 내용이나 불러온 파일이 5MB를 넘으면 정렬 결과 대신 크기 초과 안내가 나옵니다. 1MB를 넘으면 정렬에 몇 초 걸릴 수 있다는 안내가 잠시 표시됩니다.

키워드는 대문자가 좋나요

정해진 규칙은 없지만 SELECT·FROM 같은 키워드를 대문자로 쓰면 테이블·컬럼 이름과 구분되어 읽기 쉽습니다.

  • UPPER(대문자) — 가장 널리 쓰이는 방식 (기본값)
  • lower(소문자) — 최근 일부 팀에서 선호
  • 유지 — 원래 쓴 그대로 두기

팀에 정한 규칙이 있다면 그쪽을 따르세요.

들여쓰기는 몇 칸이 좋나요

2칸은 화면을 적게 쓰고, 4칸은 구조가 더 뚜렷하게 보입니다. 중첩이 깊은 쿼리라면 2칸이 가로 스크롤을 줄여 편하고, 짧은 쿼리라면 4칸이 읽기 좋습니다.

이 도구로는 안 되는 것

  • 쿼리를 실행하지 않습니다. 정렬만 합니다
  • 문법 오류를 잡아 주지 않습니다 — 실행해 봐야 알 수 있습니다. 다만 아예 읽지 못할 정도로 어긋나면 정렬을 멈추고 몇 번째 줄 몇 번째 글자 부근이 문제인지 알려 주며, 그때는 복사 버튼도 잠깁니다
  • 성능을 분석하거나 개선해 주지 않습니다
  • 결과 데이터를 다루려면 CSV 편집기JSON 편집기를 쓰세요. 같은 '보기 좋게 정렬' 용도로 JSON을 다룬다면 JSON 포맷터가 있습니다

용어 설명

SQL

데이터베이스에 질문하고 값을 꺼내는 언어입니다. "이 조건에 맞는 사용자를 가져와" 같은 요청을 문장처럼 적습니다.

방언

같은 SQL이라도 제품마다 조금씩 다른 문법을 말합니다. 표준이 있지만 MySQL·Oracle·SQL Server가 각자 확장한 부분이 있어서, 한쪽에서 되는 쿼리가 다른 쪽에서 안 되기도 합니다.

SQL 포맷터 자주 묻는 질문

한 줄로 길게 이어진 쿼리도 정렬되나요?

네, 줄바꿈 없이 한 줄로 뭉쳐 있는 쿼리를 붙여넣으면 SELECT·FROM·WHERE·JOIN 같은 절과 키워드 단위로 줄을 나눠 읽기 좋게 들여써 줍니다. 로그에 찍힌 쿼리나 ORM이 출력한 압축된 쿼리를 그대로 붙여넣어도 됩니다.

어떤 SQL 방언을 지원하나요?

표준 SQL과 함께 MySQL, PostgreSQL, SQL Server, Oracle, SQLite, BigQuery 일곱 가지를 지원합니다. SQL은 표준이 있지만 제품마다 문법이 조금씩 달라서, MySQL은 백틱으로 이름을 감싸고 SQL Server는 대괄호를 쓰며 Oracle에는 전용 구문이 따로 있습니다. 종류를 맞춰 주면 이런 부분을 알아보고 정확히 정렬하며, 어느 것인지 모르겠으면 표준 SQL로 두어도 대체로 무난합니다.

키워드 대소문자나 들여쓰기 폭을 바꿀 수 있나요?

네. 키워드를 대문자·소문자·원본 유지 중에서 고를 수 있고, 들여쓰기는 2칸과 4칸 중에서 선택할 수 있습니다. 기본값은 대문자와 2칸입니다. SELECT·FROM 같은 키워드를 대문자로 쓰면 테이블·컬럼 이름과 구분되어 읽기 편해 가장 널리 쓰이는 방식이며, 팀에 정한 규칙이 있다면 그쪽을 따르세요. 들여쓰기는 중첩이 깊은 쿼리라면 2칸이 가로 스크롤을 줄여 편하고, 짧은 쿼리라면 4칸이 구조가 더 뚜렷합니다.

정렬 결과가 이상하게 나옵니다.

원인은 대개 두 가지입니다. 첫째, 데이터베이스 종류가 실제와 다른 경우입니다. 특히 백틱이나 대괄호가 든 쿼리는 종류를 맞춰야 제대로 읽히니 실제 쓰는 제품으로 바꿔 보세요. 둘째, 쿼리 자체에 문법 오류가 있는 경우입니다. 이 도구는 문법을 검사하거나 고쳐 주지 않으므로, 실제로 실행되는 쿼리인지 먼저 확인해 주세요.

운영 DB 쿼리를 붙여넣어도 외부로 새지 않나요?

정렬은 브라우저 안에서만 처리되고 입력한 쿼리는 어디로도 전송되지 않습니다. 테이블 구조가 드러나는 운영 쿼리도 붙여넣어 정렬할 수 있습니다.

마지막 업데이트: