SQL 포매터

SQL(Structured Query Language)은 관계형 데이터베이스의 표준 언어입니다. 이 도구는 SQL 쿼리를 적절한 들여쓰기로 서식 지정하고, 키워드를 대문자로 변환하며, 복잡한 쿼리를 가독성 있게 구조화합니다. 일반적인 SQL 방언을 지원합니다.

사양

주요 사용 사례

  • 로그 또는 ORM 출력의 축소된 SQL 서식 지정
  • 코드 리뷰를 위해 복잡한 쿼리를 읽기 쉽게 변환
  • 문서화를 위한 SQL 준비
  • 기존 쿼리 디버그 및 이해

기능

  • 일관된 들여쓰기로 SQL 정렬 출력
  • SQL 키워드를 대문자로 변환 (SELECT, FROM, WHERE 등)
  • 복잡한 JOIN 및 서브쿼리 서식 지정
  • WITH를 사용한 CTE(공통 테이블 표현식) 처리
  • 윈도우 함수 지원
  • 6가지 SQL 방언 지원 (Standard, PostgreSQL, MySQL, MariaDB, SQLite, T-SQL)
  • 테이블 이름 추출
  • 축소 뷰 전환
  • 크기 절감 표시 (원본 vs. 축소)

예제

JOIN이 포함된 복잡한 쿼리

사용해 보기 →

집계, 조인, 정렬이 포함된 쿼리.

SELECT
  u.id,
  u.name,
  COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.active = true
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5
ORDER BY order_count DESC

  • 버전 관리에 커밋하기 전에 쿼리를 서식 지정하세요.
  • 대문자 키워드는 가독성을 향상시키지만 SQL에서 필수는 아닙니다.
  • 서브쿼리는 명확성을 위해 들여쓰기해야 합니다.

이해하기 SQL 포매터

SQL(Structured Query Language)은 1970년대부터 관계형 데이터베이스의 표준 언어입니다. PostgreSQL, MySQL, SQLite, SQL Server, Oracle을 포함한 데이터베이스 시스템에서 데이터를 쿼리, 조작, 관리하기 위한 선언적 구문을 제공합니다. 각 데이터베이스마다 독자적인 확장을 추가하지만, 핵심 언어는 놀라울 정도로 일관적입니다.

SQL 문은 여러 범주로 나뉩니다. 데이터 조작 언어(DML)는 데이터 읽기와 수정을 위한 SELECT, INSERT, UPDATE, DELETE를 포함합니다. 데이터 정의 언어(DDL)는 데이터베이스 객체 관리를 위한 CREATE, ALTER, DROP을 포함합니다. 데이터 제어 언어(DCL)는 GRANT와 REVOKE로 권한을 처리합니다. 현대 SQL은 WITH 절을 사용한 공통 테이블 표현식(CTE), 분석을 위한 윈도우 함수, 반구조화 데이터를 위한 JSON 연산도 지원합니다.

SQL 서식 지정은 가독성과 유지보수에 필수적입니다. 조인, 서브쿼리, 집계가 포함된 복잡한 쿼리는 한 줄로 압축되면 이해하기 어려워집니다 — ORM 생성 쿼리, 애플리케이션 로그, 데이터베이스 모니터링 도구에서 흔히 발생합니다. 대문자 키워드, 적절한 들여쓰기, 정렬된 절을 사용한 일관된 서식 지정은 쿼리를 검토, 디버그, 최적화하기 쉽게 만듭니다.

SQL 서식 지정은 성능 분석에도 도움이 됩니다. 잘 서식이 지정된 쿼리는 누락된 인덱스 식별(WHERE 및 JOIN 조건에 나타나는 열 확인), 조인으로 다시 작성할 수 있는 불필요한 서브쿼리 발견, CTE 및 윈도우 함수를 포함하는 복잡한 쿼리의 논리적 흐름 이해를 쉽게 합니다.

SQL은 키워드에서 대소문자를 구분하지 않으므로 SELECT와 select는 데이터베이스 엔진에서 동일하게 처리됩니다. 대문자 키워드(SELECT, FROM, WHERE, JOIN)는 SQL 키워드를 테이블 및 열 이름과 시각적으로 구분하여 가독성을 향상시키는 널리 따르는 관례입니다. 대부분의 포매터와 스타일 가이드는 이러한 이유로 대문자 키워드를 권장합니다.

공통 테이블 표현식(CTE)은 WITH 키워드로 정의되는 이름이 있는 임시 결과 집합으로, 단일 쿼리 실행 기간 동안 존재합니다. CTE는 복잡한 쿼리를 이름이 있는 단계로 분할하여 깊이 중첩된 서브쿼리를 위에서 아래로 읽히는 순차적 구조로 대체함으로써 가독성을 향상시킵니다. 재귀 CTE는 이 기능을 확장하여 조직도나 스레드된 댓글과 같은 계층적 데이터를 순회할 수 있습니다.

핵심 SQL 구문(SELECT, JOIN, WHERE, GROUP BY)은 데이터베이스 방언 간에 일관적이지만, 독자적 기능에서 차이가 나타납니다. MySQL은 식별자 인용에 백틱을 사용하고, PostgreSQL은 큰따옴표, SQL Server는 대괄호를 사용합니다. 함수, 데이터 타입, LATERAL 조인, MERGE, UPSERT 같은 고급 기능도 방언에 따라 다릅니다. 이 포매터는 모든 주요 데이터베이스에서 작동하는 표준 SQL 구문을 처리합니다.

← 전체 도구로 돌아가기