SQL 포맷터
쿼리를 붙여 넣으면 절마다 줄을 나눠 정렬합니다. 문자열·이름·주석은 그대로 둡니다.
입력값은 브라우저 밖으로 나가지 않음ISO/IEC 9075 (SQL)기준일 2026.10.03
입력
출력
SQL 포맷터 사용 방법
- 1입력 칸에 SQL을 붙여 넣거나 「예시 넣기」를 누릅니다.
- 2쓰는 데이터베이스의 방언을 고르고 키워드 대소문자와 들여쓰기를 정하면 결과가 바로 바뀝니다.
- 3「복사」로 결과를 복사하거나 「내려받기」로 .sql 파일을 저장합니다.
SQL 포맷터 옵션
- 방언
- 표준 SQL(기본), MySQL, MariaDB, PostgreSQL, SQLite, SQL Server(T-SQL), Oracle(PL/SQL), BigQuery 가운데 고릅니다. 어떤 단어가 키워드인지, 어떤 따옴표를 받아들이는지가 방언에 따라 달라집니다.
- 키워드
- 대문자(기본)는 SELECT 같은 키워드를 대문자로, 소문자는 소문자로 씁니다. 유지는 적힌 그대로 둡니다. 테이블과 컬럼 이름은 바꾸지 않습니다.
- 들여쓰기
- 2칸(기본), 4칸, 탭 가운데 고릅니다.
- 압축 (한 줄로)
- 정렬한 쿼리를 한 줄로 잇습니다. -- 주석 뒤에는 줄바꿈을 남깁니다. 같은 줄에 이어 쓰면 뒤 내용이 모두 주석이 되기 때문입니다.
포맷터가 SQL을 다루는 방식
SQL은 ISO/IEC 9075로 정해져 있지만 데이터베이스마다 키워드, 따옴표, 연산자를 더해 씁니다. 방언을 골라야 하는 이유입니다. 백틱은 MySQL에서는 이름이고 PostgreSQL에서는 오류입니다. 대괄호는 SQL Server에서는 이름이고 BigQuery에서는 배열 문법입니다.
포맷터는 쿼리를 키워드, 이름, 문자열, 숫자, 연산자, 주석이라는 토큰의 목록으로 읽습니다. 그리고 같은 토큰을 줄바꿈과 들여쓰기만 새로 넣어 다시 씁니다. SELECT, FROM, WHERE 같은 절은 각각 새 줄에서 시작하고 그 내용은 아래에 들여 씁니다. 토큰 사이의 공백만 다시 쓰기 때문에 'a b' 같은 문자열 안의 공백 두 칸은 그대로 남습니다.
정렬에는 오픈소스 라이브러리 sql-formatter를 씁니다.
하지 않는 일
데이터베이스처럼 SQL을 해석하지는 않습니다. 깔끔하게 정렬된 쿼리도 실행하면 실패할 수 있고, 컬럼 이름에 오타가 있어도 그대로 정렬합니다.
SQL 포맷터 예시
쿼리 정렬 (기본 옵션: 표준 SQL, 대문자, 2칸)
입력
select id, name from users where age > 20 order by name
출력
SELECT id, name FROM users WHERE age > 20 ORDER BY name
키워드 소문자, 4칸
입력
select id, name from users where age > 20 order by name
출력
select id, name from users where age > 20 order by name압축 (한 줄로)
입력
select id, name from users where age > 20 order by name
출력
SELECT id, name FROM users WHERE age > 20 ORDER BY name
예시는 이 도구를 검증하는 기준 사례의 값입니다.
SQL 포맷터 자주 묻는 질문
입력값이 서버로 전송되나요?
아니요. 입력과 결과는 이 브라우저 안에서만 처리되며 저장하지도 않습니다. 새로 고침하면 사라집니다.
정렬하면 쿼리의 동작이 바뀌나요?
바뀌지 않습니다. 공백, 줄바꿈, 키워드의 대소문자만 바뀝니다. 문자열 값, 따옴표로 감싼 이름, 숫자, 주석 내용은 그대로 옮깁니다. 고른 방언에서 키워드인 단어는 이름으로 썼더라도 키워드로 다루므로 키워드 옵션에 따라 대소문자가 바뀔 수 있습니다. 바뀌지 않게 하려면 유지를 고르세요.
어떤 방언을 골라야 하나요?
쿼리를 실행할 데이터베이스를 고르세요. 흔한 쿼리는 표준 SQL로도 정렬되지만 백틱, 대괄호, 달러 인용 문자열, 일부 연산자는 그 문법이 있는 방언에서만 받아들입니다.
「SQL을 정렬할 수 없습니다」가 나오는 이유는 무엇인가요?
글자를 SQL 토큰으로 나누지 못했다는 뜻입니다. 닫지 않은 문자열이나 괄호, 또는 다른 방언의 문법이 흔한 원인입니다. 멈춘 줄과 열을 함께 보여 줍니다.
SQL이 올바른지 검사하거나 실행하나요?
아니요. 글자를 정리할 뿐입니다. 데이터베이스에 연결하지 않고, 테이블 구조를 알지 못하며, 컬럼 이름 오타 같은 실수를 알려 주지 않습니다.
관련 도구
처리 방식·표준
- 처리 위치: 이 브라우저 (내 기기). 전송하거나 저장하지 않습니다.
- 표준: ISO/IEC 9075 (SQL)
- 엔진: sql-formatter 15.9.0 (MIT)
- 여러 줄에 걸친 주석 안에서는 각 줄 앞의 공백을 다시 맞춥니다. 주석의 글자는 바뀌지 않습니다.
- 줄을 이으면 문자열이나 주석이 바뀔 수 있는 쿼리는 압축하지 않고 정렬한 결과를 보여 주며 그 사실을 알려 줍니다.
- 긴 스크립트는 시간이 걸립니다. 64KB를 넘는 입력은 백그라운드에서 처리해 화면이 멈추지 않습니다.
- 기준일 2026.10.03
- 변경 이력: 2026.10.03 처음 공개