PL/SQL 에서 SELECT , INTO(2)
앞 글
https://tigre911.tistory.com/97
PL/SQL의 구조 (1)
01. PL/SQL 구조 PL/SQL은 오라클에서 제공하는 SQL로 쿼리문에서 변수 정의, 조건처리(IF), 반복처리(LOOP, WHILE, FOR) 등을 지원하며, SQL의 단점을 보완해준다. PL/SQL은 블록구조의 언어로서, 크게 선언부,
tigre911.tistory.com
2.3 PL/SQL에서 SELECT문
PL/SQL에선 SQL에서 사용하는 명령어를 그대로 사용할 수 있음
SQL문과 차이점은 PL/SQL의 SELECT문은 INTO절이 필요하다.
INTO절에는 데이터를 저장할 변수를 기술한다.
PL/SQL에서 SELECT INTO문은 데이터베이스에서 데이터를 조회한 다음, 조회한 데이터를 변수에 할당하는 방법 중 하나
SELECT column1, column2, ... INTO variable1, variable2, ...
FROM table_name
WHERE condition;
위 구문에서 column1, column2, ...은 조회하고자 하는 테이블의 컬럼들을 나타내며, variable1, variable2, ...은 조회한 데이터를 저장할 변수들을 나타낸다.
table_name은 조회할 테이블의 이름을 나타내며, condition은 조회 조건을 나타낸다.
예를 들어, employees 테이블에서 id가 1인 직원의 name, age, salary 컬럼 값을 변수에 할당하는 SELECT INTO문은 다음과 같다.
DECLARE
v_name employees.name%TYPE;
v_age employees.age%TYPE;
v_salary employees.salary%TYPE;
BEGIN
SELECT name, age, salary INTO v_name, v_age, v_salary
FROM employees
WHERE id = 1;
-- do something with v_name, v_age, v_salary variables
END;
코드 실행 시, SELECT문이 실행되어 employees 테이블에서 id가 1인 직원의 name, age, salary 컬럼 값을 조회합니다. 조회한 결과는 INTO절에 의해 v_name, v_age, v_salary 변수에 각각 할당됩니다.
SELECT INTO문은 SELECT문과 달리 한 행(row)만 반환하도록 설계되어 있습니다.
따라서 SELECT INTO문은 여러 개의 행을 반환하는 경우 TOO_MANY_ROWS 예외를 발생시킵니다.
만약 SELECT INTO문에서 조회 결과가 없는 경우에는 NO_DATA_FOUND 예외가 발생합니다.
SELECT문은 다양한 기능을 제공합니다. 예를 들어, GROUP BY절을 사용하여 그룹화하거나, HAVING절을 사용하여 그룹화된 데이터를 필터링할 수 있습니다. 또한, ORDER BY절을 사용하여 결과를 정렬하거나, JOIN을 사용하여 여러 테이블을 연결하여 데이터를 조회할 수 있습니다.