본문으로 건너뛰기

SQL 쿼리 정리하기

MySQL, PostgreSQL, SQL Server, SQLite, BigQuery, Oracle 등 20개 방언의 SQL을 원하는 스타일로 정리하거나 한 줄로 압축해요. 브라우저에서 바로 처리해요.

정리됨
SQL 서식 변환을 누르면 쿼리가 정리돼요.
브라우저에서 실행 · 업로드 없음작동 방식

SQL 포맷터 사용 방법

  1. 1

    SQL 붙여넣기

    쿼리나 스크립트 전체를 붙여넣거나 .sql 파일을 열어요. 샘플을 누르면 정리되지 않은 쿼리로 바로 써 볼 수 있어요.

  2. 2

    SQL 방언 선택

    사용하는 데이터베이스를 고르면 따옴표, 연산자, 키워드를 올바르게 인식해요.

  3. 3

    스타일 설정

    키워드 대소문자, 들여쓰기, 쉼표 위치, 레이아웃을 팀 규칙에 맞게 골라요.

  4. 4

    변환하고 복사

    SQL 서식 변환 또는 압축을 누른 뒤, 강조된 결과를 복사하거나 .sql 파일로 다운로드해요.

제한 및 Pro

회원가입 없이 무료: SQL 방언 20개, 최대 10 MB의 .sql 파일, 20초 안에 처리되는 스크립트를 쓸 수 있어요. 결과가 600,000자를 넘으면 미리보기는 일부만 보이고, 복사와 다운로드는 전체가 돼요.

Pro는 광고를 없애 줘요. 서식 변환 기능은 어떤 요금제든 같아요. Pro 보기

SQL 포맷터 소개

로그, ORM 디버그 출력, 동료가 보낸 메신저 메시지에서 가져온 한 줄짜리 쿼리를 붙여넣으면, 꼼꼼한 사람이 정리한 것처럼 보기 좋게 바꿔 줘요. 절마다 한 줄씩 나누고, 선택한 컬럼과 조인은 해당 키워드 아래로 들여쓰고, 서브쿼리는 중첩해서 구조가 한눈에 보여요. 표준 SQL, MySQL, MariaDB, PostgreSQL, SQL Server T-SQL, SQLite, Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark, Trino, DuckDB, ClickHouse, Hive, Db2, Db2 for i, SingleStore, TiDB, Couchbase N1QL까지 20개 SQL 방언을 이해해요. 그래서 백틱 식별자, 대괄호, :: 형변환, 달러 인용 문자열 같은 방언 문법도 그대로 유지돼요.

스타일도 직접 고를 수 있어요. 키워드는 대문자, 소문자, 입력한 그대로 중에서 고르고, 함수 이름과 데이터 타입도 같은 방식으로 정해요. 들여쓰기는 공백 2칸, 공백 4칸, 탭 중에서 고르고, 쉼표는 줄 끝이나 줄 처음에 둘 수 있어요. AND와 OR는 줄바꿈 앞이나 뒤에 놓을 수 있고, 키워드를 한 열에 맞추는 표 형태 레이아웃도 있어요. 여러 문장으로 된 스크립트는 빈 줄로 구분해요. 압축은 반대로 주석과 불필요한 공백을 없애되, 문자열, 따옴표로 묶은 이름, 옵티마이저 힌트는 그대로 둬요.

결과에는 구문 강조가 적용되고, 복사하거나 .sql 파일로 다운로드할 수 있어요. 서식 변환에는 오픈소스 sql-formatter 라이브러리를 쓰며, SQL 서식 변환을 처음 누를 때 불러와요. 백그라운드 워커에서 실행되어 긴 스크립트도 페이지가 멈추지 않아요.

바뀌는 것은 공백과 대소문자뿐이에요. 테이블이나 컬럼 이름을 검증하거나, 쿼리를 실행하거나, 성능을 위해 고쳐 쓰지는 않아요. 특이한 벤더 문법의 저장 프로시저는 가장 가까운 방언을 골라야 할 수 있어요.

개인정보 보호

SQL은 Web Worker가 브라우저 안에서 정리하므로, 테이블 이름, 고객 데이터, 인증 정보가 들어 있는 쿼리도 서버로 전송되지 않아요. 방언과 스타일 선택은 로컬 저장소에 저장되지만 SQL 자체는 저장되지 않아요.

기능

SQL 방언 20개

MySQL, PostgreSQL, SQL Server, Oracle, BigQuery, Snowflake 등 20개를 지원해요.

나만의 스타일

키워드 대소문자, 들여쓰기, 줄 처음·줄 끝 쉼표, AND/OR 위치, 표 형태 레이아웃을 설정해요.

압축도 지원

코드에 SQL을 넣을 때 쓰도록 주석과 공백을 지워요. 문자열과 힌트는 그대로 유지돼요.

SQL 포맷터: 자주 묻는 질문

서식을 바꾸면 쿼리 동작도 달라지나요?
아니요. 공백, 줄바꿈, 키워드·함수·데이터 타입의 대소문자만 바뀌고, 식별자, 문자열 리터럴, 주석은 그대로 유지돼요. SQL 키워드는 대소문자를 구분하지 않아서 안전해요. 다른 도구에서 식별자 대소문자를 바꾸면 PostgreSQL은 따옴표로 묶은 이름을 구분하므로 주의해야 하고, 이 도구는 그래서 식별자를 건드리지 않아요.
구문 분석 오류가 나는 이유는 무엇인가요?
문장 구조를 인식해야 하므로 괄호가 맞지 않거나, 키워드가 빠졌거나, 다른 데이터베이스의 문법이 섞여 있으면 멈춰요. 오류 메시지에 줄과 열, 그 위치에서 기대한 내용이 나와요. 사용하는 데이터베이스의 방언을 고르고, 대괄호 식별자는 SQL Server, 백틱은 MySQL, MariaDB, BigQuery를 선택하세요. 끝에 끝나지 않은 문장이 있는지도 확인하세요.
쉼표는 줄 처음과 줄 끝 중 어디에 두는 게 좋나요?
줄 끝 쉼표가 가장 흔한 방식이고 대부분의 도구가 이렇게 만들어요. 줄 처음 쉼표는 마지막 컬럼을 주석 처리하기 쉽고, 컬럼을 추가해도 diff가 한 줄만 바뀌어서 일부 데이터 팀이 선호해요. 팀에서 쓰는 방식을 고르세요. 이 옵션은 표준 레이아웃에서만 적용돼요.
저장 프로시저나 여러 문장으로 된 스크립트도 변환할 수 있나요?
네. 스크립트 전체를 붙여넣으면 CREATE TABLE, INSERT, UPDATE, MERGE, 자주 쓰는 절차형 블록까지 문장마다 정리해 빈 줄로 구분해요. GO 구분자가 있는 복잡한 T-SQL 배치나 PL/SQL 패키지 같은 벤더 전용 절차 코드는 완전히 이해하지 못할 수 있어요. 맞는 방언을 고르고, 실패하면 더 작은 블록으로 나눠 보세요.
압축은 무엇을 없애나요?
압축은 -- 와 /* */ 주석(MySQL과 MariaDB는 # 주석도)을 지우고, 이어진 공백과 줄바꿈을 공백 하나로 줄이며, 쉼표와 괄호 옆 공백을 없애요. 문자열 리터럴, 따옴표로 묶은 식별자, /*+ … */ 형태의 옵티마이저 힌트와 MySQL의 /*! … */는 유지되므로 압축한 쿼리도 원본과 똑같이 실행돼요.