편집 요약 없음 |
편집 요약 없음 |
||
27번째 줄: | 27번째 줄: | ||
{{설명 | {{설명 | ||
|제목=# 런타임에 SQL 문을 동적으로 생성하고 실행 | |제목=''' 설명 ''' | ||
# 런타임에 SQL 문을 동적으로 생성하고 실행 | |||
# 조건에 따라 다른 컬럼, 테이블, 조건을 사용할 때 필요 | # 조건에 따라 다른 컬럼, 테이블, 조건을 사용할 때 필요 | ||
# SQL 인젝션 공격 방지를 위해 반드시 입력 값 검증 필요 | # SQL 인젝션 공격 방지를 위해 반드시 입력 값 검증 필요 | ||
}} | }} |
2025년 7월 2일 (수) 20:35 기준 최신판
동적 SQL (Dynamic SQL)
-- 조건에 따라 다른 쿼리 실행 (MySQL 저장 프로시저 예제) DELIMITER // CREATE PROCEDURE get_employee_data(IN dept_id INT, IN min_salary DECIMAL) BEGIN SET @sql = CONCAT('SELECT * FROM employees WHERE department_id = ', dept_id); IF min_salary IS NOT NULL THEN SET @sql = CONCAT(@sql, ' AND salary >= ', min_salary); END IF; SET @sql = CONCAT(@sql, ' ORDER BY last_name;'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END // DELIMITER ; -- 프로시저 호출 CALL get_employee_data(5, 50000);
blur_on 설명
- 런타임에 SQL 문을 동적으로 생성하고 실행
- 조건에 따라 다른 컬럼, 테이블, 조건을 사용할 때 필요
- SQL 인젝션 공격 방지를 위해 반드시 입력 값 검증 필요