SQLFORMATTER
SQL 포맷터
원시 SQL 쿼리를 정리하고 읽기 좋게 정렬합니다.
INPUT
0 lines OUTPUT
도구 설명 및 사용 방법
작성자나 데이터베이스에 따라 중구난방인 SQL 질의어 구문을 규칙적으로 정렬합니다. 예약어 대문자화, 테이블 및 조건절 들여쓰기를 통일하여 질의 해석 성능을 강화합니다. 쿼리 리뷰와 온보딩에 필수입니다.
사용 단계
1
구조 조정할 날것의 SQL 질의어 텍스트를 적어 넣습니다.
2
SQL 방언 유형(Standard SQL, MySQL, PostgreSQL, Oracle 등)을 선택해 전용 예약어에 대응시킵니다.
3
예약어들을 대문자로 정제할지 결정하고 변환을 클릭합니다.
4
들여쓰기가 완벽해져 해석하기 쉬워진 SQL 쿼리를 복사하여 쿼리 콘솔창에 실행합니다.
작동 원리 및 상세 설명
SQL Formatter는 SQL-92 / SQL:2016 문법과 각 DB의 예약어 목록을 기반으로 토크나이징한 뒤, 일관된 들여쓰기(보통 FROM/WHERE/SELECT 수준), 예약어 대문자화, 연산자 주변 공백, 괄호 배치를 재구성합니다. 이는 사람이 읽기 쉽고, 코드 리뷰에서 diff 노이즈를 줄이며, 팀 내 SQL 스타일 가이드를 강제하는 효과가 있습니다.
실제로는 sql-formatter, prettier-plugin-sql 같은 라이브러리가 더 정교한 파서를 제공하지만, 브라우저에서 즉시 사용할 수 있는 이 도구는 "커밋 전 빠른 정리"나 "다른 사람이 쓴 지저분한 쿼리 해석"에 매우 유용합니다.
모든 작업이 클라이언트 로컬에서 이루어지므로, 프로덕션 스키마나 민감한 WHERE 조건이 포함된 쿼리도 외부에 노출될 위험 없이 안전하게 포맷할 수 있습니다.
자주 묻는 질문 (FAQ)
포맷팅 후 쿼리 실행 결과가 달라질 수 있나요?
절대 없습니다. SQL Formatter는 공백, 들여쓰기, 예약어 대소문자, 괄호 배치만 정리할 뿐이며, 쿼리의 의미(semantics)와 실행 계획에는 전혀 영향을 주지 않습니다.
다양한 DB 방언(MySQL, Postgres, Oracle)을 모두 완벽히 지원하나요?
주요 키워드와 일반적인 문법은 대부분 커버합니다. 특정 DB 전용 함수나 문법(예: Postgres의 :: cast, MySQL의 backtick)은 포맷팅 후에도 원본이 유지되지만, 100% 완벽한 방언 파서는 아닙니다. 복잡한 프로덕션 쿼리는 포맷 후 한 번 더 검토하세요.
입력한 SQL이 외부로 전송되나요?
전송되지 않습니다. 모든 파싱과 재포맷팅은 브라우저에서 로컬로 수행됩니다. 민감한 스키마 정보가 포함된 쿼리도 안심하고 붙여넣으세요.
코드 사용 예시
마이그레이션 파일이나 코드 리뷰 전 정리
sql
-- Before (minified / inconsistent)
select u.id,u.name from users u join orders o on u.id=o.user_id where o.status='paid' order by u.created_at desc limit 10;
-- After (formatted by the tool, uppercase keywords, proper indent)
SELECT u.id, u.name
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'paid'
ORDER BY u.created_at DESC
LIMIT 10;PR이나 DB 마이그레이션 파일에 커밋하기 전에 온라인 도구로 빠르게 가독성을 확보하는 실무 패턴.