@Overwrite '[Oracle] Dual 테이블이란?', 갓대희의 작은 공간, https://goddaehee.tistory.com/92
Dual Table이란?
데이터베이스를 공부하다가 종종 나오는 'SELECT .. FROM DUAL;' 을 보면서 Dual 테이블이 뭘까라는 생각이 들어 찾아보고, 블로그에 공유하게되었습니다.
Dual Table 이란 꼭두각시(dummy) 테이블입니다. 박스는 있지만 안에 내용물은 없는 느낌이랄까요?! Dual Table은 다음과 같은 특징을 갖습니다.
- 오라클 자체에서 제공하는 테이블
- 간단하게 함수를 이용해서 계산 결과 값을 확인 할 때 사용
- 시스템 사용자(sys)가 소유하는 오라클의 표준 테이블
- 시스템 사용자(sys)가 소유하지만 어느 사용자에서 접근 가능함.
- 카디널리티(컬럼 수)와 차수()가 모두 1인 dummy 테이블
Dual Table의 사용 용도 및 예시
사함수를 실행할 때 임시로 사용하는데 적합합니다. 특히 내장 함수의 쓰임을 알고 싶을 때 특정 테이블 생성할 필요 없이 dual 테이블을 이용하여 함수의 값을 출력할 수 있습니다.
예시 1) Function - 세금 계산하는 간단한 함수
CREATE OR REPLACE FUNCTION tax(v_num IN NUMBER) RETURN NUMBER
IS
v_tax NUMBER;
BEGIN
v_tax := v_num * 0.07;
RETURN(v_tax);
END;
select tax(100) from dual;
예시 2) 내장 함수
-- 문자열 분할
SELECT SUBSTR('sqlplus',2,5) FROM dual;
-- INSTR : 뒤의 글자의 위치 반환
SELECT INSTR('sql*plus','*') FROM dual;
-- LPAD: 문자열앞에 패딩을 줌. 맨 뒤의 글자를 넣어주면 그 글자를 추가해주는 것.
SELECT LPAD('sql',7,'*') FROM dual;
SELECT RPAD('sql',7,'*') FROM dual;
-- LTRIM: 뒤의 글자를 왼쪽에서 문자열 나오기 전까지 제거.
SELECT LTRIM('**sql**','*') FROM dual;
SELECT RTRIM('**sql**','*') FROM dual;
'ComputerScience > Database' 카테고리의 다른 글
[ Database ] ERD tool (0) | 2019.07.18 |
---|---|
[ Database ] Database 관련 자격증 (0) | 2019.07.16 |