본문으로 건너뛰기

개발 도구 · 브라우저 내 처리

SQL 포매터

쿼리를 붙여 넣고 데이터베이스 방언을 고르면 빽빽한 SQL을 읽기 쉽게 정리합니다. SQL은 이 탭에만 머뭅니다.

정리할 SQL

최대 100,000자. SQL은 형식만 정리하며 실행하지 않습니다.

0 / 100,000

입력을 업로드하거나 저장하지 않으며 데이터베이스에 연결하거나 쿼리를 실행하지 않습니다.

서식을 정리한 SQL

서식을 정리한 SQL이 여기에 표시됩니다.

SQL 서식을 정리하고 결과를 검토하는 방법

복잡하게 이어진 쿼리를 읽기 쉽게 정리하려는 개발자, 분석가, 학생을 위한 도구입니다. 공백과 선택에 따라 키워드의 대소문자를 바꿉니다. 데이터베이스 연결, 스키마 검증, 쿼리 최적화 또는 쿼리의 정확성 검증은 수행하지 않습니다.

SQL 서식 도구 사용 방법

  1. 쿼리 하나 또는 짧은 SQL 스크립트를 붙여넣으세요. 실제 코드를 실행할 데이터베이스의 방언을 선택하세요. 표준 SQL은 일반적인 SELECT, INSERT, UPDATE, DELETE 문에 쓸 수 있지만 방언을 자동으로 감지하지는 않습니다. 특정 시스템의 기능을 사용한다면 PostgreSQL, MySQL, MariaDB, SQLite, BigQuery, SQL Server 또는 Snowflake를 선택하세요.
  2. 들여쓰기를 공백 2칸 또는 4칸으로 선택하고, 인식된 키워드를 대문자·소문자로 바꿀지 원래 대소문자를 유지할지 결정하세요. SQL 서식 정리를 누르거나 Ctrl/Command+Enter를 누르세요. 넓은 화면에서는 입력 옆에, 좁은 화면에서는 아래에 결과가 표시됩니다. 메시지와 코드를 검토한 뒤 복사하세요. 입력이나 옵션을 바꾸면 다시 정리할 때까지 기존 결과가 최신이 아닌 것으로 표시됩니다.

서식 정리로 바뀌는 부분과 유지되는 부분

쿼리를 토큰으로 나누고 SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT 같은 주요 절을 읽기 쉬운 줄에 배치하며 중첩 표현식에 들여쓰기를 적용합니다. 대소문자 옵션은 인식된 SQL 키워드에만 적용됩니다. 식별자, 따옴표로 묶인 식별자, 숫자, 연산자, 문자열 내용, 줄 주석, 블록 주석, 지원되는 자리표시자의 의미는 바꾸지 않습니다.

서식 정리는 의미의 정확성을 보장하지 않습니다. 따옴표 안의 문자열, 제품별 본문 구문, 템플릿 언어에서는 공백이 중요할 수 있습니다. 이 페이지는 유지보수 중인 sql-formatter 라이브러리와 제한된 예측 가능한 옵션을 사용하며 매개변수 값을 치환하지 않습니다. ?, :name, $1, @name 같은 일반적인 자리표시자는 선택한 방언에서 지원할 때 유지됩니다. 중요한 마이그레이션, 저장 프로시저, 자동 생성 SQL은 실행 전에 원본과 비교하세요.

쿼리 오류를 판단하기 전에 방언을 확인하세요

SQL 제품은 기본 언어를 공유하지만 인용 방식, 함수, 절차 블록, 연산자, 자료형, 문장 구문은 서로 다릅니다. PostgreSQL의 달러 인용 문자열, BigQuery의 백틱 경로와 QUALIFY, SQL Server의 대괄호와 TOP, MySQL의 백틱과 LIMIT, Snowflake 전용 절이 그 예입니다. 표준 SQL 옵션은 공통 구문의 일부를 지원하며 텍스트에서 데이터베이스를 추측하지 않습니다.

서식 정리가 실패하면 입력을 유지한 채 실제 대상 방언을 선택해 다시 시도하세요. {{ column }} 같은 애플리케이션 템플릿이나 사용자 정의 매크로가 있다면 데이터베이스가 허용하는 자리표시자로 잠시 바꾸거나 주변 SQL을 작은 부분으로 나눠 정리하세요. SQL 구문이 아니어도 애플리케이션에서 필요한 템플릿 표시일 수 있으므로 무작정 제거하지 마세요.

검토와 편집에 결과 활용하기

정리한 결과를 임시 파일이나 버전 관리의 변경 비교 화면에 복사해 논리를 바꾸기 전에 구조를 살펴보세요. 절마다 일관되게 줄을 나누면 누락된 조인 조건, 예상과 다른 AND/OR 묶음, 중복 표현식을 사람이 찾기 쉬워지지만 이 도구가 그런 문제를 검사하지는 않습니다. 깔끔한 배치는 읽기를 돕는 수단이며 배포 승인에 해당하지 않습니다.

출력은 일반 텍스트입니다. 계정, 기록, 다운로드, 공유 링크, 데이터베이스 연결, 클라우드 저장 기능은 없습니다. 원본은 소스 관리나 신뢰할 수 있는 다른 곳에 보관하세요. 탭을 닫거나 새로고침하면 텍스트가 사라집니다. 처리는 브라우저 안에서 이루어지며 붙여넣은 SQL을 서식 API에 보내지 않습니다. 사이트 분석에도 SQL 입력 내용이 포함되어서는 안 됩니다.

두 가지 서식 정리 예제

조인, 문자열, 주석과 이름 있는 자리표시자

PostgreSQL과 대문자 키워드를 선택하면 절의 구조가 드러나고 문자열, 주석, :minimum 자리표시자는 유지됩니다.

select u.id,u.name from users u -- active accounts
join orders o on o.user_id=u.id where u.status='active user' and o.total>:minimum order by o.created_at desc;

위치 기반 자리표시자와 중첩 쿼리

PostgreSQL의 $1 자리표시자는 그대로 유지됩니다. 중첩 SELECT에는 들여쓰기가 적용됩니다. PostgreSQL에 접속하거나 테이블의 존재 여부를 확인하지는 않습니다.

select * from events where account_id=$1 and created_at>(select max(created_at) from archive);

제한 및 흔한 오류

  • 실수로 큰 생성 파일을 입력해 페이지가 오래 멈추는 일을 줄이기 위해 입력은 최대 100,000자로 제한합니다. 더 큰 스크립트는 문장 경계에서 나누세요.
  • 빈 입력은 지우지 않고 오류로 안내합니다. 구문 분석 오류가 나도 원문을 유지하므로 방언이나 템플릿 구문을 수정할 수 있습니다.
  • SQL 실행, 테이블 조사, 권한 확인, 위험한 UPDATE·DELETE 검사, 인덱스 최적화, 방언 간 변환은 수행하지 않습니다.
  • 주석과 문자열을 유지하도록 설계되었지만 지원되지 않는 제품별 구문, 절차 코드, 템플릿은 직접 비교해야 합니다.
  • 복사에는 브라우저 클립보드를 사용합니다. 권한을 사용할 수 없으면 화면의 일반 텍스트 결과를 선택해 직접 복사하세요.

자주 묻는 질문

SQL을 업로드하거나 실행하나요?

아니요. 이 브라우저 탭 안에서 서식을 정리하며 데이터베이스에 연결하거나 쿼리를 실행하지 않습니다. 사용 중인 모든 브라우저 확장 프로그램이나 기기까지 보장한다는 뜻은 아닙니다.

어떤 방언을 선택해야 하나요?

쿼리를 실행할 데이터베이스를 선택하세요. 공통 구문이거나 대상을 알 수 없을 때만 표준 SQL을 쓰고 제품별 구문은 직접 검토하세요.

주석, 문자열, 자리표시자가 유지되나요?

지원되는 주석, 따옴표 문자열, 일반적인 자리표시자는 토큰으로 처리해 유지합니다. 지원되지 않는 구문은 실패할 수 있으므로 템플릿과 절차 SQL을 꼼꼼히 확인하세요.

서식을 정리하면 쿼리가 안전해지거나 빨라지나요?

아니요. 표시 방식만 바뀝니다. 권한, 매개변수, 트랜잭션 안전성, 실행 계획, 인덱스, 운영 검토는 별도로 확인해야 합니다.

서식 정리가 실패하는 이유는 무엇인가요?

방언을 잘못 선택했거나 템플릿·제품별 구문이 라이브러리의 지원 문법을 벗어난 경우가 흔합니다. 입력을 유지한 채 올바른 방언을 고르고 지원되지 않는 부분을 분리하세요.