본문으로 바로가기

SQL 포맷터베타

SQL 쿼리를 절(SELECT, FROM, WHERE …) 단위로 줄바꿈해 읽기 좋게 정렬합니다. MySQL·PostgreSQL·T-SQL 등 방언을 고를 수 있습니다. 입력은 브라우저 밖으로 나가지 않습니다.

0자 · 0줄
키워드 대소문자

결과0자 · 0줄

사용 방법

입력창에 SQL을 붙여넣으면 절(SELECT, FROM, WHERE, JOIN …) 단위로 줄이 나뉘고 들여써져서 읽기 좋은 모양으로 정렬됩니다. ’언어’에서 쓰고 있는 데이터베이스를 고르고, 키워드 대소문자(대문자·소문자·입력 그대로)와 들여쓰기 폭(공백 2칸·4칸·탭), 쿼리 사이 빈 줄 수를 취향대로 바꿀 수 있습니다. 세미콜론(;)으로 구분한 여러 쿼리를 한 번에 붙여넣어도 각각 정렬됩니다.

방언마다 문법이 다릅니다

SQL은 표준이 있지만 실제 데이터베이스마다 세부 문법이 조금씩 다릅니다. 예를 들어 BigQuery는 테이블 이름에 백틱(`)을 쓰고, T-SQL(SQL Server)은 TOP N 구문이나 대괄호로 감싼 식별자를 씁니다. 방언을 잘못 고르면 실제로는 문제없는 쿼리도 해석에 실패해 오류로 나올 수 있으므로, 표준 SQL·MySQL·PostgreSQL·SQLite·T-SQL(SQL Server)·BigQuery 중 실제로 쓰는 DBMS에 맞는 방언을 ‘언어’ 옵션에서 고르는 게 중요합니다.

오류가 나면

붙여넣은 SQL을 정렬용 문법 규칙으로 해석할 수 없으면 결과 대신 오류 안내가 나옵니다. 라이브러리가 어느 지점에서 막혔는지 알려줄 수 있을 때는 몇 번째 줄·칸인지도 함께 표시하므로, 그 위치 근처의 괄호가 안 닫혔는지, 방언에 안 맞는 문법을 썼는지 확인해 보세요.

왜 “압축” 기능은 없나요

이 도구는 보기 좋게 정렬하는 기능만 제공하고, 한 줄로 뭉치는 압축(minify) 기능은 넣지 않았습니다. 문자열 리터럴이나 주석 안의 공백까지 안전하게 구분하려면 SQL 문법을 정확히 해석해야 하는데, 사용 중인 라이브러리(sql-formatter)에는 그 기능이 없고, 무리해서 직접 구현하면 문자열 내용이 깨질 위험이 있기 때문입니다. 파일 크기를 줄이고 싶다면 들여쓰기 폭을 좁히고 쿼리 사이 빈 줄을 0으로 두는 방법을 대신 써 보세요.

개인정보

입력한 SQL은 이 브라우저 안에서만 처리되며 어디에도 저장되거나 전송되지 않습니다. 정렬 기능(sql-formatter)은 필요할 때 브라우저가 내려받아 그 자리에서 실행할 뿐, 여러분의 쿼리 내용을 어디로도 보내지 않습니다.

참고 자료

자주 묻는 질문

어떤 방언을 골라야 하나요?

쓰고 있는 데이터베이스에 맞춰 고르세요. MySQL·PostgreSQL·SQLite처럼 실제 DBMS 이름이 있으면 그걸 고르고, 특정 DBMS를 안 쓰거나 표준 문법만 쓴다면 '표준 SQL'을 고르면 됩니다. 방언마다 문자열 인용 방식이나 식별자 표기(예: BigQuery의 백틱, T-SQL의 대괄호) 같은 세부 문법이 달라서, 잘못된 방언을 고르면 정상적인 쿼리도 오류로 나올 수 있습니다.

왜 압축(한 줄로 붙이기) 기능은 없나요?

SQL은 문자열 리터럴이나 주석 안의 공백까지 안전하게 구분해 지우려면 SQL 문법을 정확히 해석해야 하는데, 이 도구가 쓰는 라이브러리(sql-formatter)는 보기 좋게 정렬하는 기능만 있고 한 줄로 뭉치는 기능은 없습니다. 어설프게 공백만 지우면 문자열 안의 내용이 깨질 위험이 있어 일부러 넣지 않았습니다. 대신 들여쓰기 폭을 줄이고 쿼리 사이 빈 줄을 0으로 두면 꽤 압축된 형태를 얻을 수 있습니다.

세미콜론으로 구분한 여러 쿼리를 한 번에 정렬할 수 있나요?

네. 입력창에 세미콜론(;)으로 구분한 여러 쿼리를 붙여넣으면 각각 정렬되고, '쿼리 사이 빈 줄' 옵션으로 각 쿼리 사이에 넣을 빈 줄 수를 정할 수 있습니다.

복잡하거나 방언 전용 문법이 있는 쿼리도 되나요?

대부분 됩니다. 다만 정렬은 문법을 해석해야 하는 작업이라, 고른 방언에서 지원하지 않는 문법이거나 실제로 문법 오류가 있는 SQL은 정렬 대신 오류로 표시되고, 가능하면 몇 번째 줄·칸에서 막혔는지도 함께 보여 줍니다.

사용한 오픈소스: sql-formatter (MIT), nearley (MIT)