MySQL에서 DUAL 테이블 없이 SELECT로 값 출력하기
Oracle 같은 데이터베이스에서는 산술 연산이나 단순 값을 조회할 때 반드시 DUAL이라는 더미(dummy) 테이블을 지정해야 합니다. 하지만 MySQL은 FROM 절 자체가 필요 없습니다. 즉, SELECT 뒤에 원하는 식이나 값을 그대로 작성하기만 하면 별도의 테이블 참조 없이 결과를 얻을 수 있습니다.
아래 예제를 통해 확인해 보겠습니다.
mysql> Select 1+1;
+-----+
| 1+1 |
+-----+
| 2 |
+-----+
1 row in set (0.02 sec)
위 쿼리는 어떤 테이블도 참조하지 않고 1+1의 계산 결과인 2를 그대로 반환합니다.
mysql> Select 1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
마찬가지로 단순한 상수 값도 테이블 없이 바로 출력할 수 있습니다.
정리
- MySQL에서는
SELECT문에 FROM 절을 생략할 수 있으므로, 간단한 계산이나 상수 출력 시 DUAL 테이블이 필요하지 않습니다. - 다만 Oracle 등 다른 DBMS와의 호환성을 위해 MySQL에서도
SELECT 1+1 FROM DUAL;처럼 DUAL을 사용할 수 있으며, 이 경우에도 정상적으로 동작합니다.