듀얼 테이블
DUAL tableDUAL 테이블은 Oracle 및 기타 데이터베이스 설치에서 기본적으로 제공되는 한 줄의 특수 테이블입니다.Oracle의 경우 테이블에는 'X' 값을 가진 DUMMY라는 단일 VARCHAR2(1) 열이 있습니다.SYSDATE 또는 USER와 같은 유사 열을 선택하는 데 적합합니다.
사용 예
Oracle의 SQL 구문에는 FROM 절이 필요하지만 일부 쿼리에는 테이블이 필요하지 않습니다. 이 경우 DUAL을 사용할 수 있습니다.
선택한다. 1+1 부터 이중의; 선택한다. 1 부터 이중의; 선택한다. 사용자 부터 이중의; 선택한다. 시스템 날짜 부터 이중의; 선택한다. * 부터 이중의;
역사
Charles Weiss는 DUAL을 만든 이유를 설명합니다.
Oracle Data Dictionary에서 기본 개체로 DUAL 테이블을 만들었습니다.그 자체가 보이도록 의도된 것이 아니라 쿼리될 것으로 예상되는 뷰 내에서 사용되었습니다.DUAL 테이블에 JOIN을 실행하여 테이블 내의 각 행에 대해 결과에 2개의 행을 작성할 수 있습니다.그런 다음 GROUP BY를 사용함으로써 결과 결합을 요약하여 DATA 익스텐트와 INDEX 익스텐트에 대한 저장 용량을 나타낼 수 있다.DUAL이라는 이름은 하나의 [1]행에서 한 쌍의 행을 만드는 프로세스에 적합한 것 같습니다.
최적화
10g Release 1 이후 Oracle은 DUAL 테이블에서 물리 I/O 또는 논리 I/O를 수행하지 않습니다.이 테이블은 아직 존재합니다.[2]
DUAL은 SQL 데이터베이스 내의 모든 인증된 사용자가 쉽게 사용할 수 있습니다.
기타 데이터베이스 시스템
기타 데이터베이스(Microsoft SQL Server, MySQL, Postgre 포함)SQL, SQLite 및 Teradata)를 사용하면 테이블이 필요 없는 경우 FROM 절을 완전히 생략할 수 있습니다.이렇게 하면 더미 테이블이 필요하지 않습니다.
- Click House는 1열 시스템 테이블 시스템을 갖추고 있습니다.UInt8 유형의 "dummy"라는 단일 열과 값이 0인 열.이 테이블은 SELECT 쿼리에 테이블이 지정되지 않은 경우 암묵적으로 사용됩니다.
- Firebird에는 1행의 시스템 테이블 RDB$DAB가 있습니다.Oracle의 DUAL과 동일한 방식으로 사용되는 ASE는 자체적인 의미도 가지고 있습니다.
- IBM DB2에는 Oracle Compatibility를 [3]사용할 때 DUAL을 확인하는 보기가 있습니다.또한 sysibm이라는 테이블도 있습니다.Oracle DUAL 1과 유사한 속성을 가진 sysdummy1.
- Informix:Informix 버전 11.50 이후의 테이블에는
sysmaster:"informix".sysdual
기능은 같지만 좀 더 자세한 [4]이름을 사용합니다.사용할 수 있습니다.CREATE PUBLIC SYNONYM dual FOR sysmaster:"informix".sysdual
이름을 짓다dual
동일한 기능을 가진 현재 데이터베이스에 있습니다. - Microsoft Access:DUAL이라는 이름의 테이블을 생성하여 ADO(MS Access의 테이블리스 UNION 쿼리)를 통해 단일 행 제약 조건을 적용할 수 있습니다.
- Microsoft SQL Server: SQL Server에는 더미 테이블이 필요하지 않습니다.'select 1 + 1'과 같은 쿼리는 'from' 절/[5]테이블 이름 없이 실행할 수 있습니다.
- MySQL을 사용하면 [6]DUAL을 테이블에서 데이터를 필요로 하지 않는 쿼리에서 테이블로 지정할 수 있습니다.꼭 필요한 것은 아니지만 SYSDATE()나 USER() 등의 결과 함수를 선택하는데 적합합니다.
- PostgreSQL: [7]듀얼 뷰를 추가하여 Oracle에서 쉽게 이식할 수 있습니다.
- Snowflake: DUAL이 지원되지만 명시적으로 문서화되어 있지는 않습니다.설명서의 다른 작업에 대한 샘플 SQL에 표시됩니다.
- SQLite: Oracle "dual" 테이블과 동일하게 동작하는 "dual"이라는 이름의 VIEW는 다음과 같이 작성할 수 있습니다.
CREATE VIEW dual AS SELECT 'x' AS dummy;
- SAP HANA에는 Oracle "듀얼" 테이블과 동일하게 작동하는 더미라는 테이블이 있습니다.
- Teradata 데이터베이스에는 더미 테이블이 필요하지 않습니다.'select 1 + 1'과 같은 쿼리는 'from' 절/테이블 이름 없이 실행할 수 있습니다.
- Vertica는 공식 문서에서 [8]DUAL 테이블을 지원합니다.
메모들
- ^ "More About Oracle's History". Oracle Magazine. January–February 2002. Archived from the original on December 5, 2004. Retrieved 4 September 2013.
- ^ Oracle Database SQL Language Reference 11g Release 2 (11.2), DUAL 테이블에서 선택
- ^ DB2 10.1 InfoCenter :: Linux, UNIX 및 Windows용 DB2 버전 10.1 - DUAL 테이블
- ^ Informix 12.10 InfoCenter :: 관리자 레퍼런스:: 시스템 감시 인터페이스 테이블:: sysdual
- ^ SQL Server의 "Dual" 테이블과 동등한 Oracle은 무엇입니까?
- ^ "MySQL :: MySQL 5.0 Reference Manual :: 13.2.8 SELECT Syntax". Archived from the original on 2012-01-03. Retrieved 2009-03-14.
- ^ PostgreSQL :: PostgreSQL Wiki :: Oracle에서 Postgres로의 변환
- ^ "DUAL". www.vertica.com. Retrieved 2022-03-10.