개발공부/SQL

PL/SQL 에서 SELECT , INTO(2)

tigre 2023. 4. 5. 23:49
728x90
반응형

앞 글

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을 사용하여 여러 테이블을 연결하여 데이터를 조회할 수 있습니다.

728x90
반응형