[DBMS_Oracle] dual


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