Mesa doble
El DUAL la tabla es una especial una fila, una columna mesa presentes de forma predeterminada en Oracle y otros base de datos instalaciones. En Oracle, la mesa tiene una sola columna VARCHAR2(1) llamada muñeco que tiene un valor de 'X'. Es conveniente para el uso en la selección de una columna de pseudo como SYSDATE o usuario.
Contenido
- 1 Ejemplo de uso
- 2 Historia
- 3 Optimización
- 4 En otros sistemas de base de datos
- 5 Notas
Ejemplo de uso
Oracle SQL Sintaxis requiere la De cláusula pero algunas consultas no requieren ninguna tabla - DUAL puede ser fácilmente utilizado en estos casos.
SELECCIONE 1+1 De DUAL; SELECCIONE 1 De DUAL; SELECCIONE USUARIO De DUAL; SELECCIONE SYSDATE De DUAL; SELECCIONE * De DUAL
Historia
La tabla DUAL fue creada por Charles Weiss de Oracle Corporation para proporcionar una mesa para la Unión interna Vistas:
He creado la tabla DUAL como un objeto subyacente en el diccionario de datos de Oracle. Era nunca quiso verse a sí mismo, pero en su lugar utiliza dentro de una visión que esperaba para poder consultar. La idea era que podía hacer una combinación a la tabla DUAL y crear dos filas en el resultado para cada fila en la tabla. Luego, mediante el uso de GROUP BY, podría resumirse la resultante se unen para mostrar la cantidad de almacenamiento para la medida de datos y el índice extent(s). El nombre, DUAL, apto para el proceso de creación de un par de filas de sólo uno.[1]
La tabla DUAL original tenía dos filas (de ahí su nombre), pero posteriormente sólo contaba con una fila.
Optimización
Comenzando con 10g Release 1 base de datos Oracle han sido optimizados[2] y la base de datos ya no realiza IO físico o lógico en la tabla DUAL aunque todavía existe la tabla DUAL.
DOBLE está disponible para todos los usuarios en base de datos. No se limita a sólo el administrador del sistema.
En otros sistemas de base de datos
Varias otras bases de datos (incluyendo SQL Server y PostgreSQL, SQLite) permiten omitir la cláusula FROM completamente si no es necesario tabla. Esto evita la necesidad de cualquier tabla ficticia.
- Firebird tiene una tabla de una fila sistema RDB$ DATABASE que se utiliza de la misma manera como Oracle DUAL, aunque también tiene un significado propio.
- IBM DB2 tiene una vista que resuelve doble cuando se utiliza Oracle compatibilidad [3]
- Microsoft Access:: Puede crearse una tabla denominada DUAL y la restricción de la solo-fila forzadas mediante ADO (Tabla de consulta sindical en MS Access)
- MySQL permite doble especificarse como una tabla de consultas que no necesitan los datos de las tablas.[4] Es conveniente para el uso en la selección de una función de resultado como REGENERAR o USER(), aunque no es imprescindible.
- PostgreSQL:: Puede agregarse una visión DUAL para facilitar la migración de Oracle.[5]
- SQLite:: Una vista denominada "doble" que funciona de la misma como la tabla "dual" de Oracle puede crearse como sigue: "CREATE VIEW dual como seleccionar 'x' como maniquí;"
- SAP HANA una mesa llama DUMMY que funciona igual que la tabla "dual" de Oracle.
Notas
- ^ "Más sobre la historia de Oracle". Oracle Magazine. Enero – febrero 2002. Retrieved 04 de septiembre de 2013.
- ^ Oracle base de datos SQL lenguaje referencia 11g Release 2 (11.2), seleccionar de la tabla DUAL
- ^ DB2 10.1 InfoCenter:: DB2 versión 10.1 para Linux, UNIX y Windows - mesa doble
- ^ MySQL:: MySQL 5.0 Reference Manual:: 13.2.8 Sintaxis de SELECT
- ^ PostgreSQL:: PostgreSQL Wiki:: Oracle para conversión de Postgres