DevToolPal
한국어

SQL 포매터

MySQL, PostgreSQL, SQL Server, Oracle, SQLite, BigQuery 등의 SQL 쿼리를 보기 좋게 정리합니다.

로컬에서 실행, 업로드 없음

옵션

입력

0자 · 0 B

출력

0자 · 0 B

기능 소개

SQL 포매터는 한 줄로 길게 이어진 쿼리를 읽기 쉽고 들여쓰기가 일관된 쿼리로 바꿉니다. 각 절(SELECT, FROM, WHERE, GROUP BY, ORDER BY)은 새 줄에서 시작하고, 선택한 열과 조건은 한 줄에 하나씩 나열되며, 조인은 조인 대상 테이블 아래에 정렬되고, 서브쿼리는 괄호 안에서 들여쓰기됩니다.

포맷된 SQL은 풀 리퀘스트에서 리뷰하기 쉽고, 쿼리가 엉뚱한 행을 반환할 때 디버깅하기 쉬우며, 문서에 붙여 넣기도 좋습니다. 모든 내용이 한 줄로 찍히는 ORM 로그나 애플리케이션 오류 메시지에서 쿼리를 복사해 왔을 때도 유용합니다.

사용 방법

  1. 입력 상자에 SQL 문을 하나 이상 붙여 넣거나, .sql 파일을 끌어다 놓거나, 예시를 클릭합니다.
  2. 데이터베이스의 방언을 고릅니다.
  3. 키워드를 UPPERCASE, lowercase로 바꿀지, 입력대로 유지할지 고릅니다. COUNT 같은 함수 이름도 같은 설정을 따릅니다.
  4. 들여쓰기로 공백 2칸, 공백 4칸, 탭 중 하나를 고릅니다.
  5. 결과를 복사하거나 .sql 파일로 다운로드합니다. 단축키: Ctrl/Cmd+Enter로 포맷, Ctrl/Cmd+Shift+C로 복사.

세미콜론으로 구분된 여러 문은 빈 줄로 나뉩니다. 주석은 제자리에 남습니다.

예시

select u.id, count(o.id) as orders from users u left join orders o on o.user_id = u.id group by u.id

위 쿼리는 다음과 같이 바뀝니다.

SELECT
  u.id,
  COUNT(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
GROUP BY
  u.id

팁

키워드를 대문자로 쓰면 절이 테이블 이름, 열 이름과 확연히 구분되므로 가장 흔한 팀 규칙입니다. 팀에서 소문자 SQL을 쓴다면 lowercase를 고르면 쿼리 전체가 그에 맞춰집니다. 포매터가 예상치 못한 토큰을 보고하면 방언이 맞는지 확인하세요. 예를 들어 백틱으로 감싼 이름은 MySQL에서는 유효하지만 표준 SQL에서는 그렇지 않습니다.

자주 묻는 질문

› SQL이 서버로 전송되나요?

아니요. 포매터는 브라우저에서 실행되므로 테이블 이름, 고객 데이터, 비즈니스 로직이 드러나는 쿼리도 기기 안에만 머뭅니다.

› 어떤 SQL 방언을 지원하나요?

표준 SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server(T-SQL), Oracle(PL/SQL), BigQuery, Snowflake, Redshift, Spark SQL을 지원합니다. 올바른 방언을 고르면 백틱 식별자, :: 형 변환, 대괄호 이름 같은 방언 고유 문법을 제대로 처리합니다.

› 포맷하면 쿼리 동작이 바뀌나요?

아니요. 공백과, 선택한 경우 키워드와 함수 이름의 대소문자만 바뀝니다. 식별자, 문자열 리터럴, 주석은 쓴 그대로 유지됩니다.

› "Unexpected end of input"이 나오는 이유는 무엇인가요?

대개 괄호나 따옴표가 닫히지 않았기 때문입니다. 오류는 쿼리 끝을 가리키므로, 짝이 없는 마지막 여는 ( 또는 '를 찾아보세요.