반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MySQL] PREPARE 사용 방법 및 예시
SQL/MYSQL

[MySQL] PREPARE 사용 방법 및 예시

2024. 12. 9. 15:01
728x90
반응형


PREPARE Statement는 MySQL에서 동적 SQL을 실행하기 위한 기능입니다. SQL 쿼리를 미리 준비해두고, 실행 시점에 파라미터를 바인딩하여 실행할 수 있습니다.

기본 구문:

PREPARE stmt_name FROM preparable_stmt;
EXECUTE stmt_name [USING @var_name [, @var_name] ...];
DEALLOCATE PREPARE stmt_name;



실제 사용 예시:

-- 변수 설정
SET @table = 'employees';
SET @sql = CONCAT('SELECT * FROM ', @table, ' WHERE id = ?');

-- 준비
PREPARE stmt FROM @sql;

-- 파라미터 설정
SET @id = 100;

-- 실행
EXECUTE stmt USING @id;

-- 해제
DEALLOCATE PREPARE stmt;



더 실용적인 예시:

-- 동적으로 IN 절 생성
SET @ids = '1,2,3,4,5';
SET @sql = CONCAT('SELECT * FROM products WHERE id IN (', @ids, ')');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;



PREPARE Statement의 장점:
1. SQL 인젝션 방지
2. 반복적인 쿼리 실행 시 성능 향상
3. 동적 쿼리 생성 용이

주의사항:
- PREPARE된 statement는 세션이 종료되면 자동으로 해제됨
- 사용 후 DEALLOCATE PREPARE로 명시적 해제 권장
- 하나의 세션에서 동일한 이름의 statement를 재사용하려면 먼저 해제 필요

728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MySQL] Statement Labels 사용 방법 및 예시  (0) 2024.12.12
[MySQL] BEGIN END 사용 방법 및 예시  (0) 2024.12.11
[MySQL] DEALLOCATE PREPARE 사용 방법 및 예시  (0) 2024.12.10
[MySQL] EXECUTE 사용 방법 및 예시  (1) 2024.12.10
[MySQL] STOP GROUP_REPLICATION 사용 방법 및 예시  (0) 2024.12.04
[MySQL] START GROUP_REPLICATION 사용 방법 및 예시  (1) 2024.12.03
[MySQL] STOP REPLICA 사용 방법 및 예시  (0) 2024.12.02
[MySQL] START REPLICA 사용 방법 및 예시  (0) 2024.11.26
    'SQL/MYSQL' 카테고리의 다른 글
    • [MySQL] DEALLOCATE PREPARE 사용 방법 및 예시
    • [MySQL] EXECUTE 사용 방법 및 예시
    • [MySQL] STOP GROUP_REPLICATION 사용 방법 및 예시
    • [MySQL] START GROUP_REPLICATION 사용 방법 및 예시
    Ant_U
    Ant_U

    티스토리툴바