티스토리 뷰



SELECT abs(32), abs(-32)

   FROM dual;


  오라클을 비롯한 DB를 사용해본 분들이라면 위에 있는 SQL문이 그렇게 어렵게 다가오지는 않을 것이다. 위에 있는 SQL문이 어떤 의미에서 사용되었는지도 쉽게 알 수 있다. SQL문에서 사용하는 함수 가운데 'abs'라는 함수에 대한 예제이다.


  이야기가 나온 김에 'abs' 함수를 잠깐 이야기하자면, abs는 absolute의 약자이며, '절대값'을 의미한다. 쉽게 말해서 abs(32)라고 하면 우리가 중학교때 배운 32의 절대값 '|32|'과 같은 의미이다. 절대값이란 어떤 시술에서 부호를 제거한 값으로 abs(32)와 abs(-32)의 절대값은 모두 32로 동일하다.


  이런 이야기를 하려면 ORACLE이라는 카테고리에 많은 수의 '함수'를 설명해야 한다. 이번 글에서는 abs가 아니라 'dual'이라는 테이블이 주인공이다.



  SELECT문을 알고 있는 분이라면 SELECT ... FROM ... 이 구문에서 'FROM 이하의 단어'가 어떤 값이 들어있는 테이블 이름이라는 것을 알 수 있다. 그러나 dual이라는 테이블은 사실 일반적인 '테이블(Table)'과는 약간 다르다!


  dual은 펑션이나 계산식을 테이블 생성없이 수행해 보기 위한 용도로 사용하는 일종의 'dummy' 테이블이다. 어떤 값이 들어있는 것이 아니라 임시의 공간이라고 생각하면 된다. daul 테이블이 존재하는 이유는 앞에서 예를 든 SQL문처럼 함수에 대한 쓰임을 알고 싶을때 특정 테이블을 생성할 필요없이 dual 테이블을 이용하여 함수의 값을 리턴(return)받을 수 있다.


  이렇게 사용되는 daul 테이블은 자신이 속해있는 sys 스키마에서만 사용하는게 아닌 만큼 Public 시노님(synonym)으로 생성하여 오라클(ORACLE)에 있는 모든 계정에서 사용이 가능하다.


  추가로 DUAL 테이블의 몇 가지 특징을 정리하면 다음과 같다.


-. dual 테이블은 '오라클(oracle)'에 의해서 자동으로 생성되는 테이블이다.

-. dual 테이블은 sys 스키마에 있지만 모든 사용자가 엑세스할 수 있다.

-. dual 테이블은 VARCHAR2(1)로 정의된 dummy라고 하는 하나의 컬럼(열)으로 되어 있다.

-. dual 테이블은 사용자가 함수(계산)를 실행할 때 임시로 사용하는데 적합하다.







댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함