생활 단위 변환

SQL 쿼리 바인딩 파라미터 결합기

MyBatis, JPA 등에서 분리된 쿼리문과 `?` 파라미터 매핑 값을 완성된 SQL 문으로 결합합니다.

한눈에 요약

분리된 SQL 쿼리와 파라미터를 입력하면 `?` 자리표시자 순서에 맞춰 실행 확인용 완성 SQL을 만들어 드려요. 문자열, 숫자, NULL, 불리언 값을 SQL 리터럴 형식으로 자동 변환합니다.

실시간 자동 연산100% 브라우저 연산검토 완료

SQL 쿼리 바인딩 파라미터 결합기

실시간 연산

계산 결과
수치를 입력하면 실시간으로 계산됩니다.

계산 공식 및 예시

공식완성 SQL = 원본 SQL의 ? 자리표시자를 입력 순서에 따른 SQL 리터럴로 치환
계산 예시SELECT * FROM users WHERE id = ? AND status = ?에 42와 'ACTIVE'를 입력하면 SELECT * FROM users WHERE id = 42 AND status = 'ACTIVE'로 결합됩니다.

SQL 쿼리 바인딩 파라미터 결합기 사용법

MyBatis, JPA, JDBC 로그에서는 SQL 문장과 실제 파라미터 값이 분리되어 표시되는 경우가 많습니다. 이 도구에 원본 쿼리와 파라미터를 입력하면 ? 자리표시자를 입력 순서에 맞춰 SQL 리터럴로 치환해 완성된 SQL을 확인할 수 있습니다.

파라미터는 한 줄에 하나씩 입력하거나 쉼표로 구분할 수 있습니다. 숫자는 숫자 그대로, NULL은 SQL의 NULL로, 그 밖의 값은 작은따옴표로 감싸진 문자열로 변환됩니다.

계산 방법

쿼리의 문자열 리터럴과 주석 안에 있는 물음표는 제외하고 실제 바인딩 자리표시자만 파라미터 순서대로 치환합니다. 문자열에 작은따옴표가 포함되면 SQL 표준에 따라 작은따옴표를 두 번 사용해 이스케이프합니다.

완성 SQL=원본 SQL의 ? 자리표시자입력 순서의 SQL 리터럴\text{완성 SQL} = \text{원본 SQL의 ? 자리표시자} \rightarrow \text{입력 순서의 SQL 리터럴}

예를 들어 WHERE id = ? AND status = ?42, 'ACTIVE'를 입력하면 WHERE id = 42 AND status = 'ACTIVE'가 됩니다.

계산 예시

  • 사용자 조회: SELECT * FROM users WHERE id = ? AND status = ?42, 'ACTIVE'를 입력하면 SELECT * FROM users WHERE id = 42 AND status = 'ACTIVE'로 결합됩니다.
  • 기간 조건 조회: user_id1001, 시작일에 '2026-01-01', 종료일에 '2026-08-23'을 순서대로 입력하면 세 개의 ?가 각각 해당 값으로 치환됩니다.
  • 문자열 이스케이프: O'Reilly를 입력하면 SQL에서 안전하게 표시할 수 있도록 'O''Reilly'로 변환됩니다.

사용 시 주의사항 및 활용 팁

  • 본 계산기 결과는 실제 DB 실행이 아닌 로그 분석과 디버깅을 위한 참고용 SQL입니다.
  • SQL의 ? 개수와 파라미터 개수가 다르면 결과를 만들지 않습니다.
  • 쿼리의 문자열 리터럴이나 주석 안에 있는 ?는 바인딩 자리표시자로 세지 않습니다.
  • 실제 서비스 코드에서는 완성된 SQL 문자열을 직접 조합하지 말고 PreparedStatement, MyBatis 바인딩, JPA 파라미터 바인딩을 사용하세요.
  • 쉼표가 포함된 문자열은 한 줄에 하나씩 입력하면 값이 잘못 분리되는 것을 피할 수 있습니다.
최종 내용 검토일: 2026-08-23

Q&A

자주 묻는 질문

파라미터는 어떤 형식으로 입력해야 하나요?

한 줄에 하나씩 입력하거나 쉼표로 구분해 입력할 수 있습니다. 숫자는 그대로 사용하고 일반 문자는 문자열로 감싸며 NULL과 TRUE, FALSE는 SQL 키워드로 처리합니다.

문자열 안에 작은따옴표가 있으면 어떻게 처리되나요?

O'Reilly처럼 작은따옴표가 포함된 문자열은 SQL 표준에 맞춰 작은따옴표를 두 개로 이스케이프하여 'O''Reilly' 형태로 표시합니다.

이 결과 SQL을 그대로 운영 DB에서 실행해도 되나요?

이 도구의 결과는 로그 확인과 디버깅을 위한 참고용입니다. 실제 애플리케이션에서는 SQL 인젝션을 방지할 수 있는 PreparedStatement나 프레임워크의 바인딩 기능을 계속 사용해야 합니다.