본문 바로가기
CS/Database

[Database] FROM DUAL 구문

by clolee 2025. 4. 3.

FROM DUAL은 Oracle 데이터베이스에서 자주 사용되는 구문으로, 테이블이 필요 없는 단일 값의 연산이나 함수를 테스트하거나 간단한 쿼리를 실행할 때 사용합니다.


🔷 1. DUAL이란?

DUAL은 Oracle에서 임시로 사용하는 1행짜리 가상 테이블입니다.

  • 실제 테이블이지만, 시스템에 기본적으로 존재합니다.
  • 컬럼은 오직 하나: DUMMY라는 이름의 VARCHAR2(1) 타입
  • 행은 단 하나: X

  
SELECT * FROM DUAL;

결과:


  
DUMMY
-----
X

🔷 2. 왜 FROM DUAL을 사용하나?

👉 테이블 없이 단일 값을 반환하고 싶을 때 사용

예를 들어, 단순한 산술 연산이나 함수 결과를 확인할 때:


  
SELECT 1+1 FROM DUAL;
-- 결과: 2
SELECT SYSDATE FROM DUAL;
-- 결과: 현재 날짜/시간
SELECT 'Hello, World!' FROM DUAL;
-- 결과: Hello, World!

🔷 3. 다른 DB에서는?

DBMS DUAL 필요 여부
Oracle 필요 ✅
MySQL 없어도 됨 ❌
PostgreSQL 없어도 됨 ❌
SQL Server 없어도 됨 ❌

예시 (MySQL):


  
-- Oracle
SELECT 'Hi' FROM DUAL;
-- MySQL
SELECT 'Hi';

🔷 4. 실무 팁

  • 함수 테스트간단한 연산 결과 확인에 자주 사용됩니다.
  • 복잡한 쿼리 내에서 서브쿼리로도 사용될 수 있습니다.
  • SELECT (SELECT COUNT(*) FROM users) AS user_count FROM DUAL;

댓글