MySQL을 쓰다 보면 프로시저(Stored Procedure) 안에서 SELECT ... INTO 구문을 자주 보게 됩니다.
오늘은 이 구문이 어떤 역할을 하는지 간단하게 살펴보겠습니다.
SELECT ... INTO 란?
일반적인 SELECT 문은 조회한 결과를 화면에 출력합니다.
하지만 SELECT ... INTO 구문은 조회한 결과를 변수에 저장할 수 있도록 해줍니다.
즉, 단순히 데이터를 보는 게 아니라, 조회된 값을 프로시저 내부 변수로 가져와서 이후 로직에서 활용할 수 있게 됩니다.
사용 예시
DECLARE hireDATE DATE;
SELECT hire_date INTO hireDATE
FROM employees
WHERE emp_no = 10001;
- hireDATE라는 변수를 미리 선언해 두고,
- employees 테이블에서 emp_no = 10001인 직원의 hire_date 값을 조회한 뒤,
- 그 결과를 hireDATE 변수 안에 저장합니다.
이제 이후 코드에서는 hireDATE라는 변수를 직접 활용할 수 있습니다.
주의할 점
- 반드시 결과가 한 건만 나와야 함
- 여러 행이 나오면 에러 발생 (Subquery returns more than 1 row)
- 따라서 WHERE 조건을 통해 하나의 행만 조회되도록 해야 함.
- 변수 선언 필요
- SELECT ... INTO에 사용할 변수는 반드시 DECLARE로 미리 선언해야 함.
결론
SELECT ... INTO는 프로시저 내부에서 데이터를 조회하고 변수에 담아 쓰는 방법입니다.
일반 SELECT와 달리 화면 출력이 아니라 내부 변수에 값을 저장하는 데 초점이 있다는 점이 가장 큰 특징입니다.
'컴퓨터 과학 > 데이터 베이스' 카테고리의 다른 글
| MySQL 조건문: 흐름 제어 vs 단순 표현식 (2) | 2025.08.28 |
|---|---|
| MySQL에서 조건문 사용하기: IF vs CASE (0) | 2025.08.28 |
| MySQL 트리거: BEFORE vs AFTER (0) | 2025.08.23 |
| MySQL 중첩 트리거와 롤백 동작 (0) | 2025.08.23 |
| MySQL 중첩 트리거(Nested Trigger) 예제: 주문 → 재고 차감 → 배송 등록 자동화 (0) | 2025.08.23 |