# MySQL 포맷터

백틱 식별자, 문자열의 백슬래시 이스케이프, # 주석, DELIMITER 블록을 처리하는 MySQL 규칙에 따라 MySQL 쿼리와 스크립트를 포맷합니다. 각 절은 별도 줄에서 시작하고, 열과 조건은 들여쓰기하며, ON DUPLICATE KEY UPDATE와 같은 MySQL 절은 한데 유지됩니다. 닫히지 않은 문자열, 주석, 괄호를 줄과 열 위치와 함께 표시하므로 개발자가 데이터베이스 코드를 읽고 검토하기 편합니다.

## 자주 묻는 질문

### 포맷터는 어떤 MySQL 구문을 이해하나요?

백틱 식별자, 백슬래시 이스케이프와 중복 따옴표가 있는 작은따옴표 및 큰따옴표 문자열, 16진수·비트·국가별 리터럴(예: X'FF', B'101', N'text'), _utf8mb4'text'와 같은 문자 집합 도입자, @user 변수를 읽습니다. 리터럴 안의 내용은 작성된 그대로 유지됩니다.

### 주석은 어떻게 처리하나요?

해시 주석(#)과 이중 대시 주석(--)은 그대로 유지됩니다. MySQL에서처럼 이중 대시는 뒤에 공백이나 줄바꿈이 있을 때만 주석을 시작하므로, a--1은 표현식으로 유지됩니다. 실행 가능한 버전 주석은 작성된 그대로 유지됩니다.

### 쿼리는 어떻게 배치되나요?

SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT와 같은 주요 절은 별도 줄에서 시작하고, 내용은 그 아래에 들여쓰기됩니다. 선택한 열은 한 줄에 하나씩 배치되며, AND와 OR는 새 줄에서 시작하고 JOIN도 각각 별도 줄에 배치됩니다.

### MySQL 전용 절도 지원하나요?

예. ON DUPLICATE KEY UPDATE, LOCK IN SHARE MODE, FOR UPDATE, FOR SHARE는 여러 줄로 나뉘지 않고 하나의 절로 함께 유지됩니다.

### 저장 프로시저와 트리거도 포맷할 수 있나요?

예. DELIMITER 명령은 별도 줄에 유지되고, // 또는 $$와 같은 사용자 지정 구분자가 문을 끝냅니다. IF, WHILE, LOOP가 포함된 BEGIN 및 END 블록은 들여쓰기됩니다.

### 키워드의 대소문자를 변경하나요?

아니요. 키워드, 함수 이름, 식별자는 입력한 대소문자를 그대로 유지하므로 select와 SELECT 모두 입력 그대로 남습니다. 공백과 줄바꿈만 변경됩니다.

### 포맷터가 쿼리의 유효성을 확인하나요?

문자열, 따옴표로 감싼 식별자, 블록 주석이 닫혔는지와 괄호의 균형이 맞는지 확인하고 문제의 줄과 열 위치를 표시합니다. 쿼리를 실행하거나 테이블 이름 및 전체 MySQL 문법을 검사하지는 않습니다.

### 들여쓰기를 바꿀 수 있나요?

예. 각 단계에 2칸 또는 4칸의 공백이나 탭을 선택할 수 있습니다. 짧은 괄호 목록은 한 줄에 유지하고, 긴 목록과 하위 쿼리는 들여쓴 블록으로 배치합니다.

### 입력 크기는 최대 얼마인가요?

요청당 최대 1 MB의 SQL를 처리하며, 단일 문은 최대 128 KB까지 지원합니다. 문이 여러 개인 스크립트는 문별로 포맷하고 빈 줄로 구분합니다.

### 제 SQL를 저장하나요?

아니요. 쿼리는 메모리에서 포맷한 후 즉시 반환됩니다. 저장되지 않으며 요청 크기만 로그에 기록됩니다.

여기에 광고를 게재하시겠어요?

[이메일 보내기](mailto:hi@dennn.is?subject=OneClick%20Pro%20%EA%B4%91%EA%B3%A0%20%EB%AC%B8%EC%9D%98)

[광고 WordPress을 위한 에이전트 지원 플러그인 모음입니다.](https://sleekwp.com/?ref=oneclickpro)
