안녕하세요 기요밍 입니다.

얼마전에 오라클의 기본 문법 Select, Update, Delete, Insert에 대해서 알아 봤었는데요. 이번엔 Select 구문의 문법중 하나인 with as절에 대해서 알아보겠습니다.

 

Select, Update, Delete, Insert구문 공부하러 바로가기 → [요기 눌러요]

 

with as는 간단하게 말하면 Select 구문 내에서 임시 or Temp 테이블을 만들고 해당 테이블을 Select 구문에 사용하는 문법 입니다.

 

 

 

1. WITH AS 구문 문법

 

 

WITH [임시테이블1] AS (임시테이블 생성 쿼리),

         [임시테이블2] AS (임시테이블 생성 쿼리)

 SELECT *

     FROM 임시테이블1, 임시테이블2

   WHERE [조인조건]

 

위와같이 사용할 수 있습니다. 콤마로 구분해 여러개의 TEMP TABLE을 만들 수 있고, 마지막 SELECT 구문에는 위에서 WITH AS절로 만든 테이블 외에 다른 테이블도 함께 사용할 수 있습니다.

 

문법만 보면 이해하기 어려울수도 있는데요. 이해하기 쉽게 예를 들어 보겠습니다.

 

 

 

2. WITH AS 구문 사용 예

 

사용자 테이블 USER와 등급테이블 GRADE 그리고 등급별 보상테이블 GRADE_GIFT 라는 테이블이 있다고 가정 해봅시다. 그리고 USER와 GRADE라는 테이블을 조인해 사용자별 어떤 등급인지 알 수 있는 TEMP 테이블을 생성한 후, GRADE_GIFT 라는 등급별 선물 테이블과 조인해 사용자가 어떤 선물을 받아야 하는지 확인하는 쿼리를 작성한다고 하면.

 

 WITH USER_GRADE AS

         (SELECT U.USER_ID, G.GRADE FROM USER U, GRADE G WHERE U.USER_CODE = G.USER_CODE)

 SELECT U.USER_ID, G,GIFT

     FROM USER_GRADE U, GRADE_GIFT G

   WHERE U.GRADE = G.GRADE; 

 

※ 주의사항

해당 구문으로 생성한 TEMP 테이블은 SELECT 쿼리가 끝나면 유지되지 않으므로, 프로시져 내에서 계속 사용되는 데이터를 커서나 다른 방법을 이용해 생성해줘야 합니다.

 

위와 같이 작성 해주시면 됩니다.

예를 들은 쿼리이므로 테이블 구조나 왜 데이터를 이렇게 관리 하는지는 뭍지 말아주세요 ㅎ

 

이해가 되셨나요? 알아두면 유용하게 사용할일이 많은 구문이니 꼭 알아두도록 합시다!!

블로그 이미지

기요밍b

IT와 게임 블로그 입니다!!^^

,