SQL 쿼리 설명기
SQL 쿼리를 입력하면 각 절의 역할을 단계별로 설명합니다
SQL 쿼리 설명기
이 도구는 쿼리를 파싱 트리로 분석하는 것이 아니라, 정규식 하나로 SELECT·FROM·WHERE 같은 키워드가 문자열 어디에 등장하는지 위치만 찾은 뒤 키워드와 키워드 사이의 텍스트를 그대로 잘라 카드로 보여주는 방식입니다. 괄호로 둘러싸인 서브쿼리의 깊이를 전혀 구분하지 않기 때문에, 서브쿼리 안에 있는 SELECT·FROM·WHERE도 바깥쪽 쿼리의 절과 똑같은 모양의 카드로 나란히 나열되어 어느 것이 중첩된 것인지 시각적으로 구분되지 않습니다. 또한 LEFT JOIN·RIGHT JOIN·INNER JOIN·WITH(CTE)는 카드 색상(배지)은 정확히 표시되지만, 이 키워드들에 대한 전용 설명 문구가 언어별 사전에 없어 원본 SQL 텍스트가 설명 칸에 그대로 다시 나타나는 경우가 있습니다.
자주 묻는 질문
서브쿼리의 중첩 구조를 실제로 구분해서 보여주나요?
아니요. 정규식이 괄호 깊이와 무관하게 문자열 전체에서 키워드 위치만 순서대로 찾기 때문에, 서브쿼리 안의 SELECT·FROM·WHERE도 바깥 쿼리의 절과 똑같이 평평하게 나열됩니다. 어떤 절이 서브쿼리 내부에 있는지는 카드 목록만 보고는 구분할 수 없습니다.
LEFT JOIN이나 RIGHT JOIN을 쓰면 어떤 설명이 나오나요?
배지 색상은 JOIN 계열로 올바르게 표시되지만, LEFT JOIN·RIGHT JOIN·INNER JOIN이라는 구체적인 키에 대한 설명 문구가 언어 사전에 따로 없어서, 상세 설명 없이 원본 조인 조건 텍스트가 설명 칸에 그대로 반복 표시됩니다. "왼쪽 테이블의 모든 행을 유지합니다" 같은 구체적 설명은 SQL에 수식어 없이 그냥 'JOIN'이라고만 썼을 때의 항목에만 연결되어 있습니다.
WITH절(CTE)을 사용하면 설명이 나오나요?
WITH 키워드도 카드로 분리되어 표시되지만, WITH절 전용 설명 문구는 준비돼 있지 않아 원본 텍스트가 그대로 다시 노출되는 형태로 나타납니다. CTE의 구조나 재사용 방식에 대한 설명은 제공되지 않습니다.
인덱스 활용이나 SELECT * 지양 같은 최적화 팁도 제안해주나요?
아니요. 이 도구는 절을 구분해 각 절이 무엇을 하는지 설명하는 데만 초점이 맞춰져 있으며, 코드 안에 성능 최적화 제안을 생성하는 로직은 없습니다.
쿼리에 오류가 있으면 고쳐주나요?
아니요. 오류 수정 기능은 없으며, 입력한 텍스트에서 키워드를 찾아 구조를 나눠 보여주는 것에 집중합니다. 문법 오류가 있어도 별도의 오류 메시지 없이 그냥 이상하게 잘린 카드가 나올 수 있습니다.
MySQL·PostgreSQL·Oracle 방언 차이도 구분해서 설명하나요?
아니요. 하나의 공통 키워드 목록을 기준으로 절을 나누므로 특정 DBMS 전용 문법은 인식하지 못하고, 표준적인 SELECT/FROM/WHERE/JOIN 계열 구조에 대한 일반적인 설명만 제공합니다.
입력하는 동안 자동으로 설명이 갱신되나요?
네, 입력을 멈춘 뒤 약 0.5초 후 자동으로 다시 분석해 카드가 갱신됩니다(디바운스 처리). 설명 버튼을 눌러 즉시 갱신할 수도 있습니다.
입력한 SQL이 서버로 전송되나요?
아니요. 정규식 매칭과 문자열 자르기 모두 브라우저 안에서만 이루어지며, 입력한 쿼리는 어디로도 전송되지 않습니다.