# SQL 포매터·압축기

SQL을 절마다 줄을 나눠 정리하거나 한 줄로 압축합니다. MySQL, PostgreSQL, SQLite, SQL Server, BigQuery를 지원합니다.

https://codeknife.dev/ko/sql-poemaeteo/

## 기능

SQL을 절마다 줄을 나눠 정리하거나 한 줄로 압축합니다. 표준 SQL 외에 MySQL, PostgreSQL, SQLite, T-SQL(SQL Server), BigQuery를 읽을 수 있으며, 구문 오류는 행과 열과 함께 표시됩니다.

## 사용 방법

1. SQL을 붙여넣거나 `.sql` 파일을 끌어다 놓으세요.
2. **정리** 또는 **압축**을 고른 다음 방언, 키워드 대소문자, 들여쓰기를 고르세요.
3. 결과를 복사하거나 내려받거나, **출력을 입력으로 사용**으로 다음 입력으로 쓰세요.

## 예시

`select id,name from users where active=1`을 정리하면 `SELECT`, `FROM`, `WHERE`가 각자 한 줄이 되고 열과 조건이 그 아래에 들여쓰기됩니다. 정리한 쿼리를 압축하면 `SELECT id,name FROM users WHERE active = 1`이 됩니다.

## 알아두기

- 바뀌는 것은 공백과, 선택한 경우 키워드의 대소문자뿐입니다. 이름, 문자열, 숫자는 입력한 그대로입니다.
- 압축은 `--`와 `/* */` 주석을 지우지만, 데이터베이스가 실행하는 MySQL의 `/*! */` 주석과 옵티마이저 힌트 `/*+ */`는 남깁니다.
- 데이터베이스의 방언을 고르세요. 백틱은 MySQL, 대괄호는 T-SQL, `::` 형 변환은 PostgreSQL입니다.
- 포매터는 처음 정리할 때 불러오므로 첫 결과는 잠시 걸릴 수 있습니다. 압축은 다운로드가 필요 없습니다.

## 방언이 왜 중요한가요?

데이터베이스마다 이름과 연산자를 쓰는 방식이 다릅니다. MySQL은 백틱, T-SQL은 대괄호로 이름을 감싸고, PostgreSQL에는 :: 형 변환과 $$ 문자열이 있습니다. 방언이 맞지 않으면 올바른 SQL도 읽지 못하거나 이상하게 정리될 수 있습니다.

## 자주 묻는 질문

### 정리하면 쿼리 동작이 바뀌나요?

아니요. 공백과, 선택한 경우 키워드의 대소문자만 바뀝니다. 이름, 문자열, 숫자는 입력한 그대로입니다. 압축은 주석을 지우지만, 데이터베이스가 실행할 수 있는 MySQL의 /*! */ 와 /*+ */ 주석은 남깁니다.

### 왜 구문 오류가 나오나요?

쿼리를 정리하려면 먼저 읽어야 하므로, 읽을 수 없는 첫 토큰에서 멈추고 그 행과 열을 알려 줍니다. 먼저 방언을 확인한 다음 표시된 위치를 살펴보세요. 쉼표, 따옴표, 닫는 괄호가 빠졌을 수 있습니다.

### 이 도구가 내 SQL을 어딘가로 보내나요?

아니요. 모든 작업은 브라우저에서 이루어집니다. 입력한 내용은 저희 서버로 전송되지 않습니다.