💎 SQL 쿼리 포매터 & 뷰티파이어

SQL 방언과 들여쓰기를 선택해 쿼리를 읽기 쉽게 정렬하세요. 쿼리는 실행하지 않습니다.

최대 100 KiB · 문법 검증이나 DB 실행 계획 분석은 하지 않습니다.

// 변환된 쿼리가 여기에 표시됩니다.

❤️ 이 무료 툴이 프로젝트에 도움이 되셨나요?

아래 추천 상품을 한 번 둘러봐 주시는 것만으로도 사이트 운영에 아주 큰 힘이 됩니다!

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

📖 왜 SQL 포매팅이 필요한가요?

복잡한 서브쿼리나 JOIN이 포함된 SQL은 한 줄로 작성될 경우 가독성이 매우 떨어지며 에러를 찾기 어렵습니다. 표준 인덴트와 예약어 대문자 변환을 통해 팀원 간의 코드 리뷰 효율을 높일 수 있습니다.

🔒 보안 및 데이터 처리

입력하신 모든 SQL 쿼리는 외부 서버로 전송되지 않으며, 사용자의 브라우저 내부 자바스크립트를 통해 즉시 처리됩니다. 광고와 라이브러리 로딩은 외부 통신을 사용하므로 비밀 정보는 제거한 뒤 사용하세요.

SQL을 정렬하고 검토할 때 확인할 순서

JOIN과 집계 예제 읽기

‘JOIN · 집계’는 고객별 주문 금액을 더하는 예제입니다. LEFT JOIN에 주문 상태 조건을 함께 두어 주문이 없는 고객도 결과에 남깁니다. 같은 조건을 WHERE o.status = 'paid'로 옮기면 일치하지 않는 행을 제거할 수 있으므로 포맷만 바꾸는 작업과 조건 변경을 구분해야 합니다.

SELECT c.id, c.name, COALESCE(SUM(o.total), 0) AS total_spent
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id AND o.status = 'paid'
GROUP BY c.id, c.name;

사용 중인 DB의 방언 선택

MySQL의 백틱, PostgreSQL의 이중 따옴표, SQL Server의 대괄호처럼 식별자 표기가 다릅니다. 실제 대상 DB를 선택한 뒤 문자열 리터럴·주석·플레이스홀더가 유지되는지 확인하세요. MariaDB 예제는 MySQL 호환 문법 범위에서 사용하며 특정 버전의 모든 확장 문법을 보장하지 않습니다.

정렬 성공이 쿼리 성공을 뜻하지는 않습니다

이 페이지는 sql-formatter 4.0.2로 문자열의 배치를 바꿉니다. 테이블·컬럼 존재, 타입, 권한, 인덱스, 실행 비용을 검사하지 않습니다. 새 DB 문법은 기대와 다르게 줄바꿈될 수 있습니다. 입력은 100 KiB까지로 제한하고 한 번에 검토할 쿼리 단위로 나눠 사용하세요.

UPDATE 예제의 마지막은 ROLLBACK입니다

트랜잭션 예제는 변경 후 결과를 확인하고 되돌리는 검토 흐름을 보여 줍니다. 이 도구는 실행 버튼을 제공하지 않습니다. 실제 DB에서 실행하려면 환경·대상 행·트랜잭션 지원 여부를 먼저 확인하세요. WHERE 조건과 영향 행 수를 검토하고 백업 및 복구 절차를 갖춘 뒤 팀의 배포 절차를 따르세요.

원본을 보존하는 작업 순서

  1. 원본 SQL을 별도 파일이나 버전 관리에 보관합니다.
  2. 대상 방언과 들여쓰기, 예약어 대문자 옵션을 정하고 변환합니다.
  3. 문자열 값·주석·조건을 비교한 다음 결과를 다운로드합니다. 정렬된 SQL만으로 성능 개선이 일어나지는 않습니다.

데이터 처리와 문의

이 도구의 변환 코드는 입력·결과를 현재 탭에서 처리하며 서버로 보내거나 자동 저장하지 않습니다. 다운로드는 기기에 파일을 만들고, 복사는 클립보드에 기록합니다. 광고와 외부 라이브러리 요청에는 IP 주소·브라우저 정보가 전달될 수 있습니다. 실제 비밀번호·인증 토큰·고객 정보 대신 비식별 예제를 사용하세요.

오류 제보는 GitHub 문의 게시판(계정 필요)에 브라우저, 옵션, 민감한 값을 지운 재현 예제를 남겨 주세요. DevTool Hub · Google 외부 서비스 안내