SQL 포매터

한 줄로 뭉친 SQL을 읽기 좋게 줄바꿈하고 들여씁니다. 반대로 여러 줄 SQL을 한 줄로 압축할 수도 있습니다. 문자열과 주석 안은 건드리지 않으므로 쿼리의 뜻이 바뀌지 않습니다.

설정

방식
예약어

SQL 입력

결과

입력한 SQL은 브라우저 안에서만 처리되며 서버로 전송되지 않습니다. 운영 쿼리를 붙여 넣어도 밖으로 나가지 않습니다.

SQL 포매터는 한 줄로 뭉친 쿼리를 절 단위로 줄바꿈하고 들여써서 읽기 좋게 만듭니다. 반대로 여러 줄 쿼리를 한 줄로 압축할 수도 있습니다. 예약어는 대문자나 소문자로 통일할 수 있고, 문자열과 주석 안은 건드리지 않으므로 쿼리의 뜻이 바뀌지 않습니다.

SQL포매터 사용 방법

  1. 왼쪽 칸에 SQL 을 붙여 넣습니다. 입력하는 즉시 오른쪽에 결과가 나옵니다.
  2. 방식에서 보기 좋게 펴기와 한 줄로 압축 중 하나를 고릅니다.
  3. 들여쓰기 폭(공백 2칸·4칸·탭)과 예약어 표기(대문자·소문자·그대로)를 정합니다.
  4. 복사 버튼으로 결과를 가져가거나 .sql 파일로 내려받습니다.

지원 형식과 입력 조건

줄을 새로 시작
SELECT · FROM · WHERE · GROUP BY · HAVING · ORDER BY · LIMIT · JOIN 계열 · UNION · INSERT INTO · VALUES · UPDATE · SET · DELETE FROM
들여쓰기
공백 2칸 · 4칸 · 탭. 괄호 깊이를 따라 자동으로 더 들어갑니다
예약어 표기
대문자 · 소문자 · 그대로 두기
건드리지 않는 것
문자열('...', "...", `...`)과 주석(--, #, 블록 주석) 안의 모든 글자
처리 위치
브라우저 안에서만 처리하며 서버로 보내지 않습니다

왜 문자열 안을 건드리지 않는 것이 중요한가

  • 정규식으로 단어만 찾아 바꾸는 포매터는 문자열 안의 글자까지 바꿉니다. 예를 들어 WHERE note = 'select the best' 에서 문자열 안의 select 까지 대문자로 만들어 버립니다.
  • 데이터가 바뀌면 조회 결과가 달라집니다. 비교 대상 문자열이 바뀌면 조건이 맞지 않게 되어, 실행은 되는데 결과만 틀린 가장 찾기 어려운 오류가 납니다.
  • 이 도구는 먼저 쿼리를 토큰으로 쪼갭니다. 문자열과 주석은 통째로 한 덩어리가 되어 그 뒤 어떤 변환도 받지 않습니다.
  • ''(따옴표 두 개)로 따옴표 자체를 표현한 경우와 역슬래시 이스케이프도 문자열의 일부로 올바르게 인식합니다.

한 줄로 압축할 때 주석은 어떻게 되나요

  • 줄 주석(-- 또는 #)은 줄 끝까지가 주석입니다. 그대로 한 줄로 합치면 그 뒤의 쿼리 전체가 주석이 되어 쿼리가 망가집니다.
  • 그래서 압축할 때 줄 주석을 블록 주석(/* */)으로 바꿔 담습니다. 주석 내용은 그대로 남고 쿼리는 정상 동작합니다.
  • 주석 안에 블록 주석 끝 기호가 들어 있으면 주석이 일찍 닫히므로, 그 경우만 기호를 띄어 씁니다.

어디까지 다듬어 주나요

  • 괄호 안의 쉼표에서는 줄을 바꾸지 않습니다. 함수 인자까지 한 줄씩 쪼개면 오히려 읽기 나빠지기 때문입니다.
  • AND · OR 는 줄을 바꿔 한 단 들여씁니다. 조건이 여러 개일 때 어디까지가 한 조건인지 눈에 들어옵니다.
  • 문법을 검사하지는 않습니다. 문법이 틀린 쿼리도 모양만 다듬어 내보냅니다.
  • MySQL · PostgreSQL · Oracle 등 대부분의 SQL 방언에서 쓰는 공통 예약어를 다룹니다. 특정 DB 에만 있는 예약어는 표기가 바뀌지 않을 수 있습니다.

자주 묻는 질문

운영 쿼리를 붙여 넣어도 되나요?

됩니다. 이 도구는 브라우저 안에서만 동작하며 입력한 SQL 을 서버로 보내지 않습니다. 인터넷 연결을 끊고도 동작합니다.

문법 오류도 잡아 주나요?

아니요. 모양만 다듬습니다. 문법 검사는 실제 데이터베이스나 전용 도구를 쓰세요.

결과를 다시 압축했다가 펴면 원래대로 돌아오나요?

줄바꿈과 들여쓰기는 돌아옵니다. 다만 압축할 때 줄 주석이 블록 주석으로 바뀌므로 주석 모양은 그대로 돌아오지 않습니다.

아주 긴 쿼리도 되나요?

됩니다. 다만 수만 줄짜리는 입력할 때마다 다시 계산하느라 잠시 멈칫할 수 있습니다.