SQL 포맷터 (쿼리 정렬)
한 줄로 뭉친 SQL 쿼리를 읽기 좋게 줄바꿈·들여쓰기합니다. MySQL·PostgreSQL·Oracle PL/SQL·SQL Server·SQLite 문법과 키워드 대소문자를 고를 수 있고, 한 줄 압축(minify)과 복사도 됩니다.
내 기기 안에서만 처리돼요. 서버로 전송하지 않아요.
관련 도구
자주 묻는 질문
입력한 쿼리가 서버로 전송되나요?
아니요. 정리와 압축은 모두 브라우저 안에서 sql-formatter 라이브러리로 처리되며 쿼리는 서버로 전송되거나 저장되지 않습니다. 테이블 이름이나 조건값이 담긴 업무용 쿼리도 안심하고 붙여 넣을 수 있습니다.
어떤 데이터베이스 문법을 지원하나요?
Standard SQL, MySQL, PostgreSQL, Oracle PL/SQL, SQL Server(T-SQL), SQLite 여섯 가지입니다. MariaDB는 MySQL을, Redshift처럼 PostgreSQL 계열은 PostgreSQL을 고르면 대부분 잘 정리됩니다.
키워드만 대문자로 바꿀 수 있나요?
됩니다. '키워드 대소문자'를 대문자로 두면 SELECT·JOIN·WHERE 같은 예약어만 대문자로 바꾸고, 테이블·컬럼 이름과 따옴표 안 문자열은 입력 그대로 둡니다. '입력 그대로'를 고르면 대소문자를 건드리지 않습니다.
압축(minify)은 무엇을 지우나요?
줄바꿈과 여러 칸 공백을 한 칸으로 줄이고, 괄호·쉼표·세미콜론 앞뒤 공백과 -- 및 /* */ 주석을 지웁니다. 따옴표 안 문자열과 식별자, PostgreSQL $$ 본문은 공백까지 그대로 둡니다.
여러 쿼리를 한 번에 정리할 수 있나요?
됩니다. 세미콜론으로 구분된 문장을 한꺼번에 붙여 넣으면 문장마다 따로 정리하고 사이에 빈 줄을 하나 넣습니다.
SQL 포맷터 (쿼리 정렬), 어떤 도구인가요?
로그나 ORM이 한 줄로 뱉어 낸 SQL, 남이 쓴 긴 쿼리를 절(SELECT·FROM·JOIN·WHERE)마다 줄을 나누고 들여써서 읽기 좋게 정리합니다. 코드 리뷰에 붙일 쿼리를 다듬거나, 느린 쿼리의 조인 구조를 파악하거나, 문서에 넣을 예제를 정리할 때 씁니다. Standard SQL·MySQL·PostgreSQL·Oracle PL/SQL·SQL Server·SQLite 문법을 고를 수 있고, 키워드를 대문자·소문자로 통일하거나 반대로 한 줄로 압축할 수도 있습니다. 오픈소스 sql-formatter로 브라우저 안에서 처리하므로 쿼리가 서버로 전송되지 않습니다.
이럴 때 쓰세요
로그에 찍힌 한 줄 쿼리 읽기
ORM이나 슬로 쿼리 로그에 한 줄로 찍힌 긴 SQL을 붙여 넣으면 조인과 조건이 줄마다 나뉘어 구조가 한눈에 보여요.
코드 리뷰·문서용 쿼리 정리
팀 규칙에 맞춰 키워드를 대문자로, 들여쓰기를 2칸이나 4칸으로 통일해 리뷰 코멘트나 위키에 붙여요.
설정 파일·코드에 넣을 한 줄 쿼리
압축(minify)을 고르면 주석과 줄바꿈을 지운 한 줄 쿼리가 나와 YAML·환경 변수·코드 문자열에 넣기 편해요.
사용 방법
SQL 붙여 넣기
정리할 쿼리를 왼쪽 입력란에 붙여 넣습니다. 세미콜론으로 구분된 여러 문장도 한 번에 정리됩니다.
- 입력하는 동안 오른쪽 결과가 바로 바뀌어요.
- 여러 문장은 문장 사이에 빈 줄을 하나 두고 정리해요.
문법·들여쓰기·대소문자 고르기
쿼리를 실행할 데이터베이스에 맞는 문법(방언)과 들여쓰기(공백 2·4칸, 탭), 키워드 대소문자를 고릅니다.
- MySQL의 백틱(`), SQL Server의 [대괄호], PostgreSQL의 $$ 본문처럼 방언마다 다른 표기를 제대로 읽으려면 문법을 맞춰야 해요.
- 키워드 대소문자는 SELECT·FROM 같은 예약어만 바꾸고, 테이블·컬럼 이름과 문자열은 그대로 둬요.
- '압축'을 고르면 주석과 줄바꿈을 지우고 한 줄로 만들어요.
결과 복사하기
오른쪽 결과의 '복사' 버튼을 눌러 정리된 SQL을 클립보드에 담습니다.
- 문법 오류가 있으면 결과 대신 몇 번째 줄 몇 번째 글자 근처인지 안내해요.
- 결과 아래에 글자 수가 표시돼요.
자주 나는 문제와 해결
- 'SQL을 해석하지 못했어요'라는 오류가 나요
- 따옴표나 괄호 짝이 맞지 않거나, 다른 방언의 문법을 쓴 경우가 많아요. 쿼리를 쓴 데이터베이스(MySQL·PostgreSQL 등)로 문법을 바꿔 보세요.
- :name이나 ? 같은 바인딩 변수가 이상하게 나뉘어요
- PostgreSQL($1)·Oracle(:name)처럼 방언마다 변수 표기가 달라요. 해당 데이터베이스 문법을 고르면 변수로 인식해 그대로 둬요.
- 압축했더니 주석이 사라졌어요
- 한 줄로 합치면 -- 주석 뒤의 쿼리까지 주석이 되기 때문에 주석을 지워요. 단, MySQL 실행 힌트(/*! */)와 옵티마이저 힌트(/*+ */)는 남겨요.
주의사항
- 포맷터는 줄바꿈과 들여쓰기만 바꾸고 쿼리 의미는 바꾸지 않지만, 운영 DB에 실행하기 전에는 결과를 한 번 더 확인하세요.
- 문법 검사기가 아니어서, 정리가 되었다고 해서 쿼리가 실행된다는 보장은 없습니다.
- 저장 프로시저처럼 아주 긴 PL/SQL·T-SQL 블록은 일부 구문이 기대와 다르게 줄바꿈될 수 있습니다.