투케이2K

15. (Oracle/오라클) select, from, where 절 각 서브쿼리(subquery)사용 실시 본문

OracleDB

15. (Oracle/오라클) select, from, where 절 각 서브쿼리(subquery)사용 실시

투케이2K 2021. 1. 8. 18:00

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Toad

개발 언어 : Oracle

/* =========================== */

/* =========================== */

[소스 코드]

 

/*
*[select, from, where 절 각 서브쿼리(subquery)사용 실시]

*1. 서브쿼리 - 서브쿼리란 하나의 sql문에 또 다른 sql문을 포함하는 것입니다
*2. 서브쿼리 사용방법 - ( ) 소괄호 내에서 다시 sql문을 작성해 수행 시킬 수 있습니다
*3. select 절 서브쿼리 - 한개의 값을 반환해주는 서브쿼리입니다
*4. from 절 서브쿼리 - 임시 테이블을 생성해 필요한 데이터를 사용하실 수 있습니다 (인라인 뷰)
*5. where 절 서브쿼리 - 한개의 값, 다중 값을 비교해 반환해주는 서브쿼리입니다  
*/

/*[select 절 서브쿼리 - 한개값 확인]*/
SELECT T_NAME AS 이름, T_AGE AS 나이, T_DEPT AS 부서,
       (SELECT T_DEPT_PHONE 
          FROM TEST_DEPT
        WHERE T_DEPT = T_DEPT_NAME) AS 부서전화번호
    FROM TEST_USER;
    
    
/*[from 절 서브쿼리 - 임시 테이블 생성 및 사용]*/    
SELECT 이름, 나이 
    FROM (SELECT T_NAME AS 이름, T_AGE AS 나이, T_DEPT AS 부서 
           FROM TEST_USER);


/*[where 절 = 서브쿼리 - 한개값 비교]*/
SELECT T_NAME AS 이름, T_AGE AS 나이, T_DEPT AS 부서
    FROM TEST_USER
WHERE T_DEPT = (SELECT T_DEPT_NAME 
                  FROM TEST_DEPT 
                WHERE T_DEPT_NAME = TRIM('백제'));    


/*[where 절 in 서브쿼리 - 다중값 비교]*/
SELECT T_NAME AS 이름, T_AGE AS 나이, T_DEPT AS 부서
    FROM TEST_USER
WHERE T_DEPT in (SELECT T_DEPT_NAME 
                  FROM TEST_DEPT 
                WHERE T_DEPT_NAME in ('백제','고구려')); 

/* =========================== */

[결과 출력]

[select 절 서브쿼리 - 한개값 확인]

[from 절 서브쿼리 - 임시 테이블 생성 및 사용]

[where 절 = 서브쿼리 - 한개값 비교]

[where 절 in 서브쿼리 - 다중값 비교]

/* =========================== */

/* =========================== */

[요약 설명]

*1. 서브쿼리 - 서브쿼리란 하나의 sql문에 또 다른 sql문을 포함하는 것입니다

*2. 서브쿼리 사용방법 - ( ) 소괄호 내에서 다시 sql문을 작성해 수행 시킬 수 있습니다

*3. select 절 서브쿼리 - 한개의 값을 반환해주는 서브쿼리입니다

*4. from 절 서브쿼리 - 임시 테이블을 생성해 필요한 데이터를 사용하실 수 있습니다 (인라인 뷰)

*5. where 절 서브쿼리 - 한개의 값, 다중 값을 비교해 반환해주는 서브쿼리입니다

/* =========================== */

반응형
Comments