dual
일반적으로 DUAL TABLE의 Owner는 SYS이지만 모든 사용자가 사용할 수 있다. 그리고 SELECT 문장에서 조회 시 오직 하나의 Row, 하나의 Column에 'X'만 출력된다.
DUAL TABLE은 Internal Views에 조인을 위한 목적으로 오라클의 Chuck Weiss에 의해 만들어졌다.
"DUAL 테이블을 오라클 데이터 딕셔너리에 Object로 만들었고, 뷰 내부에서 사용하기 위한 용도로 만들었다. DUAL이라는 이름에서 단지 하나로부터 한 쌍의 열을 만들어 내는 과정을 쉽게 볼 수 있다. 최초 2개의 열을 가지고 있었기 때문에 이름이 DUAL 테이블로 명명된 것이며 지금은 단지 하나의 데이터만 저장되게 되었다."
위 원작자의 설명은 DUAL 테이블의 제작 의도와 중요성에 대해 시사하는 바가 크다고 할 수 있다.
1. DUAL TABLE
- Oracle RDBMS가 제공하는 Dummy Table입니다.(임시TABLE)
- 하나의 Row와 하나의 Column으로 이루어져 있습니다.
- 수식을 계산하거나 Sysdate를 Display하려고 할때 사용합니다.
- DUAL 이라는 테이블은SYS 사용자가 소유하는 오라클의 표준 테이블로서 오직 한 행(row)에 한 컬럼만 담고 있는 dummy 테이블로서 일시적인 산술연산이나 날짜 연산을 위하여 주로 쓰인다.
2. DUAL TABLE 예제
select 1+2,2+3 from dual;
select 'leejunsik' from dual;
select 12/2,'leejun' from dual;
select sysdate from dual;
3. DUAL TABLE 을 쓰는 이유는?
MySQL 에서는 간단한 계산이나 날짜를 출력시 select now(); 형식을 사용합니다.
MySQL 은 이렇게 table명없이 사용해도 되지만 oracle에서는 단순계산이나 날짜를 출력하거나 실제 table의 내용이 아닌 임시의 값을 출력할때 from dual을 씁니다.
dual table은 drop시키거나 insert명령을 줄수없습니다.
'Server > DBMS' 카테고리의 다른 글
[DBMS_Oracle] 인덱스 (0) | 2014.12.10 |
---|---|
[DBMS_Oracle] 시퀀스 (0) | 2014.12.08 |
[DBMS] HAVING 조건 (0) | 2014.12.02 |
[DBMS] Group By (0) | 2014.12.02 |
[DBMS] NULL도 데이터이다 (0) | 2014.12.02 |