콘텐츠로 건너뛰기
ToolsMinify logo
개발자 도구

SQL 포맷터 및 미니파이어

지저분한 SQL을 붙여 검토용 포맷 또는 로그·env·문자열용 한 줄 minify.

SQL 포맷터 및 미니파이어 정보

지저분한 SQL을 붙여 검토용 포맷 또는 로그·env·문자열용 한 줄 minify. 브라우저 전용이라 실제 테이블명·고객 데이터 옆 운영 쿼리가 업로드되지 않습니다. 토크나이저는 문자열 안 주석, PostgreSQL dollar-quote, backtick, optimizer hint(/*+ , /*! */) 보존. live clause map으로 CTE·join·filter를 나열해 로그 한 줄 덤프를 PR 전에 읽기 쉽게. JSON 미니파이어와 같은 형태: 한 URL, format/minify, Standard/PostgreSQL/MySQL/SQLite.

SQL 포맷터 및 미니파이어 사용 방법

  1. Format SQL(쿼리 포맷터) 또는 Minify SQL 선택. 기본은 Format.
  2. 쿼리 붙여 넣기, 로컬 .sql 드롭(최대 2 MB), JOIN/CTE/INSERT/PostgreSQL 샘플 로드.
  3. dialect 선택(또는 감지 수락), format용 keyword case·indent, minify 시 optimizer hint 유지.
  4. clause map(CTE, FROM, join, WHERE/GROUP/ORDER/LIMIT) 확인 후 복사·다운로드. 업로드 없음.

SQL 포맷터 및 미니파이어 예시

한 줄 로그 쿼리 포맷

join이 한 줄로 눌린 SELECT가 펼쳐져 SELECT 항목, JOIN, ON, WHERE, ORDER BY 가 각 줄에 UPPERCASE keyword.

embed용 SQL minify

포맷된 쿼리가 주석 제거 한 줄. optimizer hint(/*+ INDEX */), MySQL /*!40101 */ 는 기본 유지.

CTE·JOIN 개요

WITH active AS (...) SELECT ... JOIN orders 는 CTE body indent. clause map에 CTE명, join type, GROUP BY.

PostgreSQL dollar-quote

SELECT $body$ line -- still a string $body$::text 는 한 literal. -- 에서 자르는 regex minifier 실패. PostgreSQL dialect.

주석처럼 보이는 문자열

VALUES (1, 'Ada -- not a comment') 는 apostrophe 이스케이프 문자열 유지. 따옴표 안 -- 는 SQL 주석 아님.

SQL 포맷터 및 미니파이어에 대한 자주 묻는 질문

SQL 쿼리 포맷터를 어떻게 쓰나요?
SQL 붙여 넣기(.sql 드롭), Format SQL, Standard/PostgreSQL/MySQL/SQLite, indent 결과 복사. keyword case·indent 2/4. 브라우저 전용.
SQL minifier이기도 한가요?
예. 같은 페이지에서 minify: 주석·여분 공백 한 줄, 문자열·dollar-quote·quoted identifier 유지. env, URL, 로그, 앱 문자열 embed용.
SQL이 서버에 업로드되나요?
아니요. 토큰화·포맷·minify는 브라우저만. SERP 위젯·서버 측 포맷터는 부적합.
어떤 SQL dialect를 지원하나요?
Standard, PostgreSQL, MySQL, SQLite. dialect별 quoting·주석: PostgreSQL $tag$, :: ; MySQL backtick, #, /*! */ ; SQLite AUTOINCREMENT, [id]. sniffer와 다르면 감지 dialect 사용.
minify가 -- 또는 /* */ 포함 문자열을 깨나요?
아니요. 문자열·dollar-quote·quoted identifier 닫은 뒤 주석 탐색. 'Ada -- not a comment', $tag$...$tag$ 생존.
minify 시 optimizer hint가 제거되나요?
기본 아니요. /*+ INDEX(...) */, MySQL /*!40101 */ 는 plan 변경이라 minify 출력 유지. 일반 --, /* */ 주석만 제거. Keep optimizer hints 끄면 제거 가능.
clause map이란?
CTE, SELECT 수, FROM 테이블, JOIN type, WHERE/GROUP/ORDER/LIMIT 존재 여부 구조 읽기. 쿼리 플래너 아님 - SQL 실행 안 함.
포맷이 쿼리 의미를 바꾸나요?
아니요. 공백·줄바꿈·keyword casing·(minify 시) 주석만 변경. 테이블·열·literal·hint 동일. DB 결과 동일.
sqlformat.io 등과 차이는?
일반 포맷터는 pretty print만. 이 URL은 minify, hint 유지, dollar-quote 안전, dialect sniff, clause map - JSON/JS 미니파이어 옆 클라이언트.