Oh MyUtils

SQL 포맷터 및 정리기 - SQL 쿼리 정리 온라인

SQL 쿼리를 포맷, 정리, 압축. 구문 강조 제공. MySQL, PostgreSQL, SQLite, T-SQL, PL/SQL 방언 지원.

모드
SQL 방언
들여쓰기
키워드 대소문자
함수 대소문자
데이터 타입 대소문자
입력 SQL
출력
포맷된 SQL이 여기에 표시됩니다

자주 묻는 질문

SQL 포맷터란 무엇인가요?

SQL 포맷터(SQL 미화기 또는 SQL 정리기라고도 함)는 SQL 쿼리를 적절한 들여쓰기, 줄 바꿈, 일관된 스타일로 재구성하여 가독성을 향상시키는 도구입니다. 압축되거나 형식이 좋지 않은 SQL을 읽기 쉽고, 검토하기 쉽고, 디버깅하기 쉬운 깔끔하고 구조화된 코드로 변환합니다. ORM에서 자동 생성된 쿼리, 축소된 프로덕션 SQL, 또는 일관성 없는 형식의 레거시 코드 작업에 필수적입니다.

이 SQL 포맷터는 어떻게 사용하나요?

1. 입력 영역에 SQL 쿼리를 붙여넣거나 .sql 파일을 업로드하세요. 2. 정확한 포맷팅을 위해 SQL 방언(MySQL, PostgreSQL, SQLite 등)을 선택하세요. 3. 미화하려면 포맷 탭, 압축하려면 축소 탭을 선택하세요. 4. 들여쓰기(2칸, 4칸, 탭)와 키워드 대소문자(대문자, 소문자, 유지) 등의 옵션을 조정하세요. 5. 출력은 실시간으로 자동 업데이트됩니다. 6. 복사를 클릭하여 클립보드에 복사하거나 다운로드하여 .sql 파일로 저장하세요. 7. URL을 통해 설정을 공유할 수 있습니다 — 모든 옵션이 URL 매개변수에 보존됩니다.

내 SQL 데이터는 안전한가요? 서버로 전송되나요?

SQL 쿼리는 100% 안전하며 브라우저를 벗어나지 않습니다. 이 도구는 브라우저에서 실행되는 sql-formatter JavaScript 라이브러리를 사용하여 모든 포맷팅과 축소를 기기에서 완전히 처리합니다. SQL 데이터는 어떤 서버로도 전송되지 않고, 어떤 데이터베이스에도 저장되지 않으며, 어디에도 기록되지 않습니다. 인터넷 연결을 끊어도 도구가 완전히 작동하는 것으로 확인할 수 있습니다.

어떤 SQL 방언을 지원하나요?

이 포맷터는 10개의 SQL 방언을 지원합니다: 표준 SQL, MySQL, PostgreSQL, SQLite, SQL Server(T-SQL), MariaDB, Oracle PL/SQL, BigQuery, Snowflake, Amazon Redshift. 각 방언마다 고유한 예약어, 함수, 구문 규칙이 있습니다. 올바른 방언을 선택하면 데이터베이스별 키워드와 함수가 적절히 인식되고 포맷됩니다. 어떤 방언을 사용할지 모르겠다면 표준 SQL이 범용적으로 좋은 포맷팅을 제공합니다.

포맷과 축소의 차이점은 무엇인가요?

포맷(미화)은 적절한 들여쓰기, 줄 바꿈, 일관된 간격을 추가하여 SQL 쿼리를 사람이 읽기 쉽게 만듭니다. 코드 리뷰, 문서화, 디버깅에 이상적입니다. 축소는 불필요한 공백, 줄 바꿈, 주석을 모두 제거하여 가능한 가장 작은 SQL을 생성합니다. 설정 파일, 로깅, 전송에서 SQL 크기를 줄이는 데 유용합니다.

키워드 대소문자를 커스터마이즈할 수 있나요?

네. SQL 키워드(SELECT, FROM, WHERE, JOIN 등), 함수(COUNT, SUM, AVG, COALESCE 등), 데이터 타입(VARCHAR, INTEGER, BOOLEAN 등) 세 가지 카테고리의 대소문자를 독립적으로 제어할 수 있습니다. 각각 대문자, 소문자 또는 유지(원본 유지)로 설정할 수 있습니다. 특정 SQL 코딩 표준이나 스타일 가이드를 따르는 팀에 유용합니다.

포맷터가 SQL의 주석을 처리하나요?

네. 포맷 모드에서는 한 줄 주석(-- 주석)과 여러 줄 주석(/* 주석 */) 모두 보존되고 포맷된 출력 내에서 적절히 들여쓰기됩니다. 축소 모드에서는 최대 압축을 위해 주석이 제거됩니다. SQL 절 사이, 문장 뒤, 표현식 안에 있는 주석도 올바르게 처리합니다.

코드 예제

import { format } from 'sql-formatter';

// Format SQL
const ugly = "SELECT u.id, u.name, o.total FROM users u INNER JOIN orders o ON u.id = o.user_id WHERE o.total > 100 AND u.active = 1 ORDER BY o.total DESC LIMIT 10;";

const formatted = format(ugly, {
  language: 'mysql',
  tabWidth: 2,
  keywordCase: 'upper',
});
console.log(formatted);
// SELECT
//   u.id,
//   u.name,
//   o.total
// FROM
//   users u
//   INNER JOIN orders o ON u.id = o.user_id
// WHERE
//   o.total > 100
//   AND u.active = 1
// ORDER BY
//   o.total DESC
// LIMIT
//   10;

// Minify SQL
function minifySQL(sql) {
  return sql
    .replace(/--.*$/gm, '')
    .replace(/\/\*[\s\S]*?\*\//g, '')
    .replace(/\s+/g, ' ')
    .trim();
}

console.log(minifySQL(formatted));

관련 도구