SQL 포매터 & 뷰티파이어

지저분한 쿼리를 붙여넣으면 깔끔하고 일관되게 들여쓰기된 SQL을 얻을 수 있습니다. 17개 방언, 키워드 대소문자 변환, 원클릭 압축을 모두 브라우저에서 지원합니다.

브라우저에서 실행가입 불필요업로드 없음

포맷된 SQL

SQL 포매터 사용 방법

  1. 입력란에 SQL 문을 하나 이상 붙여넣거나 .sql 파일을 엽니다.
  2. :: 캐스트, [brackets], 백틱, $$ 문자열 같은 문법이 올바르게 파싱되도록 데이터베이스 방언을 선택합니다.
  3. 키워드 대소문자(대문자, 소문자, 유지), 들여쓰기, 구문 사이 빈 줄 수를 설정합니다.
  4. 로그, ORM, URL 파라미터용으로 주석과 공백을 없애려면 압축으로 전환합니다.
  5. 결과를 복사하거나 .sql 파일로 다운로드합니다.

SQL을 포맷하는 이유

ORM 로그, 실행 계획, 애플리케이션 코드에서 복사한 쿼리는 대개 긴 한 줄입니다. 각 절(SELECT, FROM, JOIN, WHERE, GROUP BY)을 별도 줄에 두고 컬럼과 조건을 들여쓰면 로직이 잘 보입니다. 코드 리뷰 diff도 작아지고, 빠진 조인 조건이나 잘못 놓인 OR도 쉽게 찾을 수 있습니다.

SQL 스타일 관례

  • 대문자 키워드(SELECT, WHERE)는 SQL 문법과 테이블·컬럼 이름을 구분해 줍니다. 대부분의 스타일 가이드가 권장하지만, dbt와 분석 팀에서는 소문자도 많이 씁니다.
  • 한 줄에 컬럼 하나로 쓰면 컬럼 추가·삭제가 한 줄짜리 diff가 됩니다.
  • 절과 서브쿼리 안의 일관된 들여쓰기(공백 2칸 또는 4칸)는 중첩 구조를 한눈에 보여 줍니다.
  • 구문 종결자: 모든 구문을 ;로 끝내면 여러 구문으로 된 스크립트가 모호하지 않습니다.

지원하는 SQL 방언

Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server(T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL, Trino/Presto, Hive, IBM Db2, Couchbase N1QL, SingleStore, TiDB를 지원합니다. 쿼리가 파싱되지 않으면 더 구체적인 방언을 선택해 보세요. @variables, $1 파라미터, 벤더 전용 연산자는 해당 방언에서만 인식됩니다.

압축 기능이 하는 일

압축 모드는 --, #, /* */ 주석을 제거하고, 공백과 줄바꿈을 공백 하나로 합치며, 쉼표와 괄호 주변의 공백을 없앱니다. 문자열 리터럴과 따옴표로 감싼 식별자('…', "…", `…`, […], $$…$$)는 바이트 단위로 그대로 복사하므로 쿼리의 의미는 절대 바뀌지 않습니다.

자주 묻는 질문

SQL이 서버로 전송되나요?
아니요. 포맷은 브라우저에서 실행되는 오픈 소스 sql-formatter 라이브러리로 이루어집니다. 테이블 이름, 고객 데이터, 자격 증명이 담긴 쿼리도 내 컴퓨터에 그대로 남습니다.
포맷하면 쿼리 동작이 바뀌나요?
아니요. 공백, 줄바꿈, 그리고 (선택한 경우) 키워드 대소문자만 바뀝니다. 식별자, 문자열 리터럴, 주석은 작성한 그대로 유지됩니다.
유효한 SQL인데 구문 분석 오류가 나는 이유는 무엇인가요?
쿼리가 다른 데이터베이스 전용 문법을 쓰고 있을 가능성이 높습니다. 맞는 방언을 선택하세요. 예를 들어 ::type 캐스트는 PostgreSQL, [bracketed] 이름과 @params는 SQL Server입니다.
여러 구문을 한 번에 포맷할 수 있나요?
네. 구문을 세미콜론으로 구분하세요. 출력에서 구문 사이에 넣을 빈 줄 수도 고를 수 있습니다.
키워드 대소문자 변환이 컬럼 이름도 바꾸나요?
아니요. 예약 키워드, 데이터 타입, 내장 함수만 대소문자를 바꿉니다. 테이블과 컬럼 이름은 원래 철자를 유지합니다.

관련 도구