읽기 쉬운 SQL 만들기
로그에서 복사하거나, ORM이 생성하거나, 급하게 작성한 쿼리는 종종 한 줄로 길게 이어져 있어 읽기 어렵고 디버깅하기는 더욱 어렵습니다. 이 SQL 포맷터는 쿼리를 SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY 등 명확한 절로 나누고, 각 컬럼과 조건을 개별 줄에 배치하며, 서브쿼리와 CASE 표현식을 일관되게 들여쓰기합니다. 그 결과 코드를 검토하거나, 버전 관리 시스템에서 비교하거나, 동료와 공유하기가 훨씬 쉬워집니다.
주요 기능
- 12가지 SQL 방언 지원: 표준 SQL부터 MySQL, PostgreSQL, SQL Server, Oracle, BigQuery, Snowflake까지 지원합니다.
- 키워드 대소문자 변환: 대문자(UPPER), 소문자(lower) 또는 입력한 그대로 유지할 수 있으며, 키워드, 데이터 타입, 함수에 적용됩니다.
- 들여쓰기: 스페이스 2개, 스페이스 4개 또는 탭(Tab)을 사용할 수 있습니다.
- 다중 명령문: 세미콜론으로 구분된 여러 개의 쿼리를 지원합니다.
- 주석 유지:
--한 줄 주석과/* */블록 주석이 모두 보존됩니다. - 복사 및 다운로드: 결과를 복사하거나
.sql파일로 다운로드할 수 있습니다. - 개인정보 보호: 포맷터가 브라우저 내에서 로컬로 실행됩니다.
변환 전후 비교
다음과 같은 쿼리가:
select u.id, u.name, count(o.id) as orders from users u left join orders o on o.user_id = u.id where u.status = 'active' group by u.id, u.name order by orders desc;
이렇게 변환됩니다:
SELECT
u.id,
u.name,
COUNT(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE
u.status = 'active'
GROUP BY
u.id,
u.name
ORDER BY
orders DESC;
SQL 스타일 팁
- 한 줄에 하나의 절 작성. 주요 절을 새 줄에서 시작하면 쿼리 구조를 한눈에 파악할 수 있습니다.
- 의미 있는 별칭 사용.
u나o같은 짧은 별칭은 간단한 쿼리에 적합하지만, 긴 리포트에서는 직관적인 별칭을 사용하는 것이 좋습니다. - 컬럼명 명확히 지정. 조인 시 모호성을 방지하기 위해
user_id대신orders.user_id와 같이 컬럼명을 명확히 지정하세요. - 일관된 포맷 유지. 프로젝트 전체에서 포맷을 일관되게 유지해야 diff에서 공백이 아닌 실제 변경 사항을 확인할 수 있습니다.
관련 도구
쿼리 결과를 다루고 계신가요? 추출한 데이터를 CSV JSON 변환기로 변환하거나, JSON 포매터로 API 응답을 깔끔하게 출력해 보세요. 텍스트 비교기를 사용해 두 쿼리 버전을 비교할 수도 있습니다.