onlinetools.dev

SQL 포맷터

방언별 키워드 인식으로 SQL 포맷 또는 한 줄로 압축

로컬 실행
loading…
이 도구에 대해

로그 파일에서 갓 꺼낸 쿼리, ORM 디버그 덤프, 동료가 보낸 한 줄짜리 쿼리를 붙여넣으면 이 포매터가 일관된 들여쓰기로 읽기 좋은 절 단위로 나눠 줍니다. 여섯 가지 방언 — 표준 SQL, PostgreSQL, MySQL, SQLite, SQL Server, BigQuery — 을 지원하므로 TOP, 백틱 식별자, 배열 타입 같은 방언 고유 문법도 파서에 걸리는 대신 올바르게 포맷됩니다.

키워드 대소문자는 설정할 수 있습니다. 고전적인 모양의 UPPERCASE, 팀이 선호한다면 lowercase, 혹은 원본 그대로 두기. 압축 모드는 반대로 동작합니다 — 포맷된 쿼리를 한 줄로 접고 주석을 제거하되 문자열 리터럴은 바이트 단위로 그대로 유지하는데, SQL을 JSON 설정이나 CLI 플래그에 붙여넣기 전에 필요한 것이 정확히 이것입니다.

쿼리에는 테이블 이름, 리터럴 속 고객 데이터, 인프라 힌트가 담기기 마련입니다. 포매팅은 전부 브라우저 안에서 실행되므로 그중 무엇도 서버에 도달하지 않습니다.

자주 묻는 질문

어떤 SQL 방언을 골라야 하나요?
사용하는 데이터베이스가 쓰는 방언입니다 — 식별자, 문자열 인용, 방언 키워드가 파싱되는 방식이 달라집니다. 일반적인 정리만 필요하다면 표준 SQL이 공통 핵심을 처리합니다. 여러분의 데이터베이스에서는 유효한 문법에 파싱 오류가 난다면 대개 방언을 바꾸라는 신호입니다.
포매팅이 쿼리의 동작을 바꾸나요?
아니요. 포매팅은 공백만 움직이고, 켜져 있다면 키워드 대소문자만 바꿉니다 — 식별자와 리터럴은 바이트 그대로 유지됩니다. 지원되는 모든 방언에서 SQL 키워드는 대소문자를 구분하지 않으므로 SELECT와 select는 같은 문장입니다.
여러 문장을 한 번에 포맷할 수 있나요?
네 — 스크립트 전체를 붙여넣으면 ; 로 끝나는 각 문장이 순서대로 포맷되고 사이에 빈 줄이 들어갑니다.
압축은 정확히 무엇을 제거하나요?
줄 주석(--)과 블록 주석(/* */)이 제거되고, 연속된 공백은 하나로 접히며, 쉼표와 괄호 주변의 공백이 사라집니다. 작은따옴표·큰따옴표·백틱 안의 텍스트는 겹따옴표 이스케이프를 포함해 절대 건드리지 않습니다.
관련 도구