개발 도구

SQL 정리

긴 쿼리를 절마다 줄을 나눠 정리합니다. 키워드 대소문자, DB 종류, 괄호 짝 확인까지.

🔒 입력한 내용과 파일은 이 브라우저 안에서만 처리합니다. 서버로 보내지 않습니다.

    SQL 정리 사용법

    로그에서 복사했거나 프로그램 코드 안에 한 줄로 이어 붙인 SQL은 조건이 어디서 시작하고 끝나는지 알아보기 어렵습니다. 이 도구는 SELECT, FROM, WHERE, GROUP BY 같은 절마다 줄을 나누고 안쪽 내용을 들여써서 쿼리의 구조가 보이게 합니다. 동료에게 쿼리를 보여 주기 전에, 문서나 코드 리뷰에 붙이기 전에, 남이 쓴 긴 쿼리를 분석하기 전에 한 번 돌리면 읽는 시간이 줄어듭니다.

    쓰는 순서

    1. 입력 칸에 SQL을 붙여 넣습니다. 여러 문장이면 세미콜론으로 나뉘어 있으면 됩니다. sql 파일은 파일 열기로 불러옵니다.
    2. DB 종류를 고릅니다. 모르면 표준 SQL로 둡니다.
    3. 정리하기를 누릅니다. 이후에는 글이나 옵션을 바꿀 때마다 다시 정리합니다.
    4. "확인할 곳"이 나오면 줄 번호를 보고 원본을 살핍니다.
    5. 결과 복사 또는 파일로 저장으로 가져갑니다.

    예시

    select id,name from users where age>=20 and city='서울' order by name 을 넣고 정리하면 다음 열 줄이 됩니다.

    결과
    SELECT
      id,
      name
    FROM
      users
    WHERE
      age >= 20
      AND city = '서울'
    ORDER BY
      name

    키워드는 대문자가 되고 연산자 양옆에 공백이 들어가지만 따옴표 안의 '서울'은 그대로입니다. 예시 버튼의 쿼리는 문장 2개(SELECT 1, UPDATE 1)로 세어지고, 3줄이던 것이 정리 뒤 31줄이 됩니다.

    옵션

    옵션고를 수 있는 값설명
    DB 종류표준 SQL, MySQL, MariaDB, PostgreSQL, Oracle, SQL Server, SQLite, BigQueryDB마다 다른 따옴표, 주석, 전용 키워드를 맞게 읽습니다.
    키워드대문자, 소문자, 그대로SELECT, JOIN, AND 같은 예약어와 INT, VARCHAR 같은 자료형에 적용합니다.
    함수 이름그대로, 대문자, 소문자COUNT, SUM, COALESCE 같은 함수 이름에 적용합니다.
    들여쓰기2칸, 4칸, 탭절 안쪽 내용을 미는 폭입니다.
    AND·OR 위치줄 앞, 줄 끝줄 앞에 두면 조건을 한 줄씩 주석 처리하기 쉽고 조건이 몇 개인지 세로로 읽힙니다.

    테이블 이름과 열 이름의 대소문자는 바꾸지 않습니다. PostgreSQL이나 Oracle처럼 따옴표로 감싼 이름의 대소문자를 구분하는 DB에서 이름을 바꾸면 쿼리가 깨지기 때문입니다.

    문장마다 한 줄로

    문장마다 한 줄로 버튼은 반대 방향입니다. 줄바꿈과 겹친 공백을 없애 문장 하나를 한 줄로 만들고 문장 사이만 줄을 바꿉니다. 프로그램 코드의 문자열에 넣거나, 명령줄과 로그에 붙이거나, 문장 수를 줄 수로 세고 싶을 때 씁니다. 따옴표 안의 공백은 건드리지 않습니다. -- 주석은 뒤의 내용까지 주석이 되지 않도록 /* */ 꼴로 바꿔 두며, 압축할 때 주석 지우기를 켜면 주석을 아예 뺍니다. 옵티마이저 힌트(/*+ … */)는 지우지 않습니다.

    "확인할 곳"에 나오는 것

    • WHERE 조건이 없는 UPDATE·DELETE: 조건 없이 실행하면 테이블 전체가 바뀌거나 지워집니다. 일부러 그런 것이 아니라면 실행 전에 꼭 확인해야 하는 실수입니다. 예를 들어 delete from logs 를 넣으면 "1번째 줄: WHERE 조건이 없는 DELETE 문입니다"라고 알려 줍니다.
    • 닫히지 않은 괄호와 짝 없는 닫는 괄호: 서브쿼리와 IN 목록이 겹칠 때 자주 생깁니다.
    • 닫히지 않은 따옴표: 문자열 안에 작은따옴표를 쓰려면 'It''s' 처럼 두 번 적습니다.
    • 닫히지 않은 주석.

    파일 여러 개를 한 번에

    sql 파일을 두 개 이상 고르면 지금 옵션으로 모두 정리해 ZIP으로 저장합니다. 읽지 못한 파일은 목록에 이유가 나오고 ZIP에서 빠집니다.

    주의할 점

    • MyBatis의 #{id} 나 <if> 태그, 프로그램 언어의 문자열 이음(" + name + ")이 섞인 글은 SQL로 읽지 못할 수 있습니다. 그 부분을 임시 값으로 바꾼 뒤 정리하세요. ?, :name, $1 같은 자리 표시는 대부분 그대로 읽습니다.
    • 저장 프로시저처럼 BEGIN과 END, 조건문이 든 긴 코드는 들여쓰기가 기대와 다를 수 있습니다.
    • 입력이 15만 자를 넘으면 붙여 넣을 때 자동으로 정리하지 않습니다. 버튼을 눌러 주세요.

    자주 묻는 질문

    DB 종류는 왜 골라야 하나요?

    DB마다 고유한 문법과 키워드가 있어서입니다. MySQL의 백틱 이름과 # 주석, PostgreSQL의 :: 형 변환과 $$ 문자열, SQL Server의 대괄호 이름과 TOP, Oracle의 CONNECT BY 같은 것들은 맞는 종류를 골라야 제대로 읽습니다. 어느 것인지 모르면 표준 SQL로 두고, 읽지 못한다는 안내가 나오면 바꿔 보세요.

    키워드는 대문자로 쓰는 것이 맞나요?

    문법상으로는 어느 쪽이든 같습니다. SELECT, FROM 같은 키워드를 대문자로, 테이블과 열 이름을 소문자로 쓰면 둘이 눈에 구분되어 예전부터 많이 써 온 관례입니다. 요즘은 편집기가 색으로 구분해 주어 소문자로 통일하는 팀도 많습니다. 팀에 정한 규칙이 있으면 그쪽을 따르세요.

    정리하면 쿼리 결과가 달라지지 않나요?

    달라지지 않습니다. 줄바꿈과 공백, 키워드의 대소문자만 바꾸고 따옴표 안의 문자열과 테이블·열 이름은 그대로 둡니다. 주석도 남깁니다. 정리 전후에 실행 계획이나 결과가 바뀌는 일은 없습니다.

    쿼리가 실행 가능한지도 검사해 주나요?

    실행 가능 여부까지는 검사하지 못합니다. 테이블이나 열이 실제로 있는지는 DB에 연결해야 알 수 있기 때문입니다. 이 도구는 괄호와 따옴표의 짝이 맞는지, UPDATE와 DELETE에 WHERE가 있는지, 고른 DB 문법으로 읽을 수 있는지를 확인합니다.

    회사 쿼리를 넣어도 괜찮은가요?

    입력한 SQL은 이 브라우저 안에서만 처리하고 서버로 보내지 않습니다. 테이블 구조나 조건값이 밖으로 나가지 않습니다. 정리에 쓰는 엔진 파일도 이 사이트에서 내려받아 브라우저에서 실행합니다.

    함께 쓰면 좋은 도구

    마지막 수정 2026-11-09. 있었으면 하는 기능이나 불편한 점은 이 도구에 건의하기로 알려 주세요.