본문 바로가기

SQL 압축기

브라우저 처리

여러 줄 SQL을 한 줄로 합치고 -- 주석과 /* */ 주석, 겹친 공백을 지웁니다. 문자열·인용된 이름·$$ 본문은 그대로 두고 /*+ 힌트 */와 /*! MySQL 전용 주석 */은 남깁니다.

사용 전 확인
  • 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
도구 실행입력 후 결과 확인
SQL 압축기 샘플 실행

코드 안의 문자열, 로그, 설정 파일에 SQL을 넣어야 할 때 들여쓰기와 주석이 섞인 여러 줄 쿼리를 한 줄로 줄여 주는 도구입니다. 줄바꿈과 연속 공백은 공백 하나로 합치고, 실행에 영향이 없는 -- 주석과 /* */ 주석(중첩 포함)은 지웁니다.

브라우저 처리
샘플 결과
SELECT id, name FROM tools WHERE active = true AND category = 'dev' ORDER BY name;
자바스크립트가 활성화되면 이 영역이 실제 입력, 실행, 결과 패널로 바뀝니다.

SQL 압축기 사용 가이드

코드 안의 문자열, 로그, 설정 파일에 SQL을 넣어야 할 때 들여쓰기와 주석이 섞인 여러 줄 쿼리를 한 줄로 줄여 주는 도구입니다. 줄바꿈과 연속 공백은 공백 하나로 합치고, 실행에 영향이 없는 -- 주석과 /* */ 주석(중첩 포함)은 지웁니다.

작은따옴표 문자열, 큰따옴표·백틱·대괄호로 감싼 이름, PostgreSQL의 $$ 본문 안은 한 글자도 바꾸지 않으므로 'a b'의 공백이나 문자열 속 -- 같은 글자가 망가지지 않습니다. 옵티마이저 힌트(/*+ … */, --+)와 MySQL 실행 주석(/*! … */)은 쿼리 동작을 바꾸기 때문에 남겨 둡니다.

줄바꿈이 꼭 필요한 두 경우만 줄을 유지합니다. 'a' 다음 줄의 'b'처럼 이어진 문자열 상수는 줄바꿈이 있어야 하나로 합쳐지고, # 이 들어간 줄은 MySQL에서 주석일 수 있어 뒤 줄과 붙이지 않습니다. 닫히지 않은 따옴표나 주석은 결과를 만들지 않고 알려 줍니다.

사용 방법

  1. 'SQL' 칸에 줄이고 싶은 쿼리를 붙여 넣습니다. 여러 문장도 함께 넣을 수 있습니다.
  2. '실행'을 누르면 주석과 불필요한 공백이 빠진 한 줄 SQL이 나옵니다.
  3. '결과 복사'로 코드나 설정 파일에 붙여 넣습니다.

예시: 들여쓰기된 조회 쿼리

입력
SELECT id, name
FROM tools
WHERE active = true
  AND category = 'dev'
ORDER BY name;
결과
SELECT id, name FROM tools WHERE active = true AND category = 'dev' ORDER BY name;

문자열 'dev'는 그대로이고 줄바꿈과 들여쓰기만 공백 하나로 바뀌었습니다.

이럴 때 쓰면 좋아요

  • JSON이나 YAML 설정 값에 SQL을 한 줄로 넣어야 할 때
  • 로그에 남길 쿼리에서 주석과 줄바꿈을 걷어 낼 때
  • 코드 리뷰용으로 두 쿼리를 한 줄씩 놓고 차이를 비교할 때
  • 엑셀 셀이나 문서 표에 쿼리를 한 칸에 넣을 때

문제가 생겼을 때

'SQL 문자열 또는 인용된 식별자가 닫히지 않았습니다' 오류

작은따옴표나 큰따옴표의 짝이 맞지 않습니다. 문자열 안의 작은따옴표는 It''s처럼 두 번 써야 합니다.

결과가 여전히 여러 줄임

# 이 들어간 줄 뒤와 이어진 문자열 상수 사이는 의미를 지키려고 줄을 남깁니다. # 주석을 지우거나 -- 주석으로 바꾸면 한 줄이 됩니다.

활용 팁

  • 키워드 대소문자나 들여쓰기 스타일은 바꾸지 않습니다. 읽기 좋게 펼치려면 SQL 포맷터/정렬기를 쓰세요.
  • 주석 안에 꼭 남겨야 할 메모가 있다면 /*! */나 힌트가 아닌 이상 지워지므로 압축 전에 따로 보관하세요.

자주 묻는 질문

MySQL, PostgreSQL, SQL Server 모두 되나요?

네. 문법을 해석하지 않고 문자열·주석·인용 규칙만 따라 공백을 줄이므로 방언과 관계없이 쓸 수 있습니다. 백틱과 대괄호 이름, $태그$ 본문도 인식합니다.

압축하면 실행 결과가 달라질 수 있나요?

문자열과 이름 안은 건드리지 않고, 의미가 있는 줄바꿈과 힌트 주석은 남기므로 실행 결과는 같습니다. 그래도 운영 DB에 쓰기 전에는 한 번 실행해 확인하세요.

쿼리가 서버로 전송되나요?

아니요. 압축은 브라우저 안에서만 이루어지고 쿼리 내용은 어디에도 저장하지 않습니다.