SQL 포매터
복잡한 SQL 쿼리를 보기 좋게 정렬합니다. MySQL, PostgreSQL 등 다양한 방언을 지원합니다.
SQL 입력
결과
SQL 포매터 사용 안내
한 줄로 길게 늘어진 SQL 쿼리를 사람이 읽기 좋게 들여쓰기ㆍ줄바꿈하여 정렬합니다. 코드 리뷰, 디버깅, 문서화에 유용합니다.
지원 방언
Standard SQL, MySQL, PostgreSQL, SQLite, MS SQL(T-SQL), BigQuery 등 주요 데이터베이스의 방언을 지원합니다.
안전성
모든 처리는 브라우저에서만 이루어집니다. 운영 DB 쿼리나 민감한 SQL도 안전하게 가공할 수 있습니다.
방언별 주의해야 할 차이
- LIMIT vs TOP vs FETCH - MySQLㆍPostgreSQL은
LIMIT 10, SQL Server는SELECT TOP 10, Oracleㆍ표준 SQL은FETCH FIRST 10 ROWS ONLY. 다른 DB로 옮길 때 흔한 버그. - 문자열 연결 - 표준은
||, MySQL은CONCAT(), SQL Server는+. MySQL의||는 OR로 해석되어 의도와 전혀 다른 결과가 나옵니다. - 날짜 함수 -
NOW()(MySQL)ㆍCURRENT_TIMESTAMP(표준)ㆍGETDATE()(SQL Server)ㆍCURRENT_DATETIME()(BigQuery). 포팅 시 반드시 교체. - 식별자 인용 - MySQL은
`backtick`, 표준ㆍPostgreSQL은"double quote", SQL Server는[bracket]. 대소문자 구분 정책도 함께 다릅니다. - Boolean - PostgreSQL은
BOOLEAN기본형, MySQL은TINYINT(1), Oracle은 NUMBER(1)로 에뮬레이션. - RETURNING 절 - PostgreSQLㆍSQLite 3.35+ㆍMariaDB는
INSERT ... RETURNING *지원. MySQL 8은 미지원, OUTPUT(SQL Server)으로 대체.
SQL 안티패턴 - 자주 보는 5가지
- SELECT * - 프로덕션에서는 필요한 컬럼만 명시. 스키마 변경 시 의도치 않은 컬럼 추가ㆍ성능 저하ㆍ네트워크 낭비 방지.
- WHERE 함수 래핑 -
WHERE DATE(created_at) = '2026-05-05'는 인덱스를 못 쓰게 합니다.WHERE created_at >= '2026-05-05' AND created_at < '2026-04-21'로 범위 쿼리. - N+1 쿼리 - 반복문 안에서 쿼리 실행. JOIN 또는 IN 절로 한 번에 조회.
- 암시적 타입 변환 -
WHERE phone = 01012345678(숫자) vs'01012345678'(문자열). 타입이 안 맞으면 인덱스 무력화 + 로케일 따라 결과 상이. - ORDER BY 랜덤 정렬 -
ORDER BY RAND()는 전체 테이블 스캔. 큰 테이블은 Tablesample(BigQuery)ㆍsampling 서브쿼리로 우회.
공식 근거ㆍ참고 자료
- PostgreSQL SQL Commands - 표준에 가장 충실한 방언의 공식 레퍼런스.
- MySQL Reference Manual - 함수ㆍ쿼리 구문 상세.
- BigQuery Standard SQL - 데이터웨어하우스 방언.
- T-SQL Reference (SQL Server) - TOPㆍIDENTITYㆍOUTPUT 등 MS 확장 문법.
- SQLite SQL Syntax - 경량 DB 구문.
- sql-formatter (오픈소스) - 본 포매터가 내부적으로 사용하는 라이브러리.
쿼리 결과를 JSON으로 가공한다면 JSON 포매터ㆍ변환기를, HTMLㆍJS 코드를 함께 정리하려면 HTMLㆍCSSㆍJS 포매터도 활용하세요.
자주 묻는 질문
Stored Procedure나 트리거도 포맷되나요?
기본적인 DDL/DML과 일부 절차적 SQL을 지원합니다. 매우 복잡한 PL/SQL이나 T-SQL 블록은 일부 한계가 있을 수 있습니다.
실행 가능한 결과가 나오나요?
네. 정렬은 시각적 변경만 수행하며 SQL 의미는 그대로 유지됩니다.
어떤 SQL 방언을 지원하나요?
표준 SQL에 더해 MySQL, PostgreSQL, Oracle PL/SQL, SQL Server T-SQL, BigQuery 등 주요 방언의 키워드를 인식합니다. 방언별 특수 함수는 일반 식별자로 처리될 수 있습니다.