동적 SQL 의미
동적 SQL은 실행 시에 조건에 따라 SQL 문이 동적으로 생성되는 것을 의미한다.
이는 데이터베이스 쿼리에 조건적인 부분이나 논리를 추가하여 실행 시에 생성되는 SQL을 다양하게 조작할 수 있게 해준다.
동적 SQL 사용
일반적으로 동적 SQL은 다음과 같은 상황에서 사용된다.
- 조건에 따른 WHERE 절 추가:
검색 조건이나 필터링 조건에 따라 WHERE 절의 내용이 동적으로 바뀌어야 할 때 동적 SQL을 사용한다,
예를 들어, 특정 조건이 주어지면 WHERE 절에 조건을 추가하고, 그렇지 않은 경우 WHERE 절을 생략할 수 있다. - 동적인 정렬 조건:
사용자의 입력에 따라 정렬 조건이 달라져야 할 때 동적 SQL을 사용한다.
사용자가 특정 컬럼으로 정렬하도록 선택한 경우에만 ORDER BY 절을 추가하고,
그렇지 않은 경우에는 정렬을 수행하지 않습니다. - 동적인 필드 선택:
특정 상황에 따라 선택적으로 특정 필드를 조회해야 할 때 동적 SQL을 사용한다.
필요한 필드만 선택해서 가져오거나, 모든 필드를 가져오도록 동적으로 SQL을 생성할 수 있다.
동적 SQL 작성
MyBatis와 같은 SQL Mapper Framework에서 <if>, <choose>, <when>, <otherwise>, <trim>, <set>, <where> 등의 XML 태그들을 사용하여
동적 SQL을 작성할 수 있다.
이를 통해 SQL 쿼리를 유연하게 조작하고 효율적으로 사용할 수 있다.
예비구문이란?
예비(prepared) 구문은 주로 동적 SQL을 실행하기 위해 미리 정의된 SQL 조각이다.
이러한 구문은 조건에 따라 SQL 쿼리를 동적으로 구성하고 실행하는 데 사용된다.
동적으로 생성되는 SQL은 주로 조건부로 WHERE 절을 추가하거나 정렬 조건을 동적으로 설정하는 등의 상황에서 활용된다.
예를 들어, 검색 조건에 따라 WHERE 절을 동적으로 생성하거나, 정렬 조건에 따라 ORDER BY 절을 동적으로 조작하는 등의 경우에 예비(prepared) 구문이 유용하게 사용될 수 있다.
이렇게 하면 동적으로 SQL을 생성할 때 코드의 가독성을 높이고,
필요한 경우에 쉽게 유지보수를 할 수 있다.
따라서, 예비(prepared) 구문은 동적 SQL을 실행하기 위해 미리 정의되는데,
이는 일반적으로 SQL Mapper Framework에서 제공하는 방식으로 사용된다.
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!