DUAL 테이블에 대해 알아보자


안녕하세요.
고코더 입니다.


지난 시간에 DUAL을 이용해 테이블 없을시에 select 를 작성하는 방법을 알아봤는데요

-> Oracle에서 from(테이블) 없이 select 질의 / Dual


 1. 이 DUAL에 대해 궁금해 하는 분이 계셔서 추가로 글을 남깁니다. 오라클을 설치하면 기본 테이블이 주어집니다. 대표적인게 DEPT 인데요. DUAL은 테이블 리스트에 포함되어 있지 않습니다. 

 2. 그 이유는 바로 이 테이블은 SYS 소유이기 때문입니다. SYSTEM에서 기본으로 만들어놓은 테이블이지만
모든 사용자에게 권한을 주어서 내가 만든 테이블 처럼 조회가 가능합니다.

 3. 해당 dual 테이블을 조회 해보면 DUMMY 라는 컬럼에 X라는 단순한 데이터만 담겨 있습니다. 나는 임시테이블이라고 밝히고 있네요. 컬럼 구조도 VARCHAR2(1)입니다. 최소한의 자원으로 만들어진 임시 테이블입니다.



사용법 사례


이전 시간에 select 만으로 데이터를 조회하고 싶을때 dual을 이용한거 처럼특별한 from에 담을 게 없을때 사용하는 용도 입니다.

 4. 만약에 내장 함수를 출력하고 싶을때도 사용합니다.

1
2
SELECT SYSDATE FROM DUAL;
SELECT SYSTIMESTAMP FROM DUAL
cs


 5. 계산식을 출력해보고 싶을때도 사용이 가능합니다. (계산기 쓰면 되죠)

1
SELECT (10+10)/2 FROM DUAL;
cs


 6. 저는 강의를 주로 하니 테이블만들기전에 임시 데이터를 만들때도 사용합니다.

1
2
3
4
5
6
7
SELECT * from  (
    SELECT 'GoCoder' AS Name FROM dual
    union all
    SELECT 'Gocoder.Tistory.com' AS Blog FROM dual
    union all
    SELECT 'GoCoder.net' AS HomePage FROM dual
)
cs




DUAL이란 정리


- VARCHAR2(1)로 DUMM컬럼으로 만들어진 임시 테이블이다
- SYS소유이고 모든 사용자가 엑세스 할 수게 되어 있다
- 오라클 설치와 동시에 만들어진다.
- 이 테이블을 이용해 원하는 select 를 테이블 없이 실행 가능하다.


마무리



댓글을 달아 주세요