En SQL si quieres ver el resultado de alguna operación debes escribir un SELECT. En los lenguajes de programación esto no es así, pero en SQL sí.

En un lenguaje de programación si quieres obtener el resultado de 15 * 4 + 5 podrías escribir algo como:

? 15 * 4 + 5

PRINT 15 * 4 + 5

printf("%d", 15 * 4 + 5)

o algo similar, pero en SQL debes escribir:

SELECT 15 * 4 + 5 FROM MiTabla

En muchos ejemplos de este blog y de otros documentos o páginas web sobre Firebird verás que se usa la tabla RDB$DATABASE en el lugar de “MiTabla”.

¿Por qué?

Porque para obtener el resultado se necesita una tabla que tenga una fila, solamente una fila, y nunca ni más ni menos de una fila. O sea: que tenga exactamente una fila.

Puedes usar cualquier tabla que tenga una fila pero quien escribe los ejemplos no puede saber como se llama tu tabla que tiene una sola fila. Alguien podría tener una tabla que se llama CONTROL y tiene una sola fila. Otra persona podría tener una tabla que se llama PARAMETROS y tiene una sola fila. Otra persona podría tener una tabla que se llama EMPRESA y tiene una sola fila. Pero quien escribe los ejemplos en un blog, una página web, o un documento, no puede saberlo.

Todas las bases de datos de Firebird tienen unas tablas internas que son creadas en el preciso momento en que se crea la Base de Datos. Los nombres de esas tablas empiezan con los caracteres RDB$ o MON$. Sí o sí tu Base de Datos de Firebird tiene tablas internas cuyos nombres empiezan con RDB$ o con MON$ (por ejemplo: RDB$BACKUP_HISTORY, RDB$CHARACTER_SETS, RDB$DEPENDENCIES, MON$ATTACHMENTS, etc.)

Una de esas tablas está garantizado que siempre tendrá exactamente una fila, ni más ni menos filas. Y esa tabla se llama RDB$DATABASE.

¿Y es obligatorio que la tabla de los ejemplos tenga una sola fila?

En realidad no, pero los resultados devueltos se mostrarán en tantas filas como filas tenga la tabla utilizada. Por ejemplo, si nuestra tabla se llama BANCOS y tiene 16 filas, al escribir algo como:

SELECT 15 * 4 + 5 FROM BANCOS

esto será lo que obtendremos:

RDB

Captura 1. Si haces clic en la imagen la verás más grande

El resultado es correcto, pero como la tabla tiene 16 filas entonces lo vemos repetido 16 veces. Algo que evidentemente es innecesario, solamente necesitamos verlo una vez, no 16 veces.

Por lo tanto, lo mejor es escribir el ejemplo anterior así:

SELECT 15 * 4 + 5 FROM RDB$DATABASE

Y este será el resultado que obtendremos:

RDB2

Captura 2. Si haces clic en la imagen la verás más grande

Está muchísimo mejor, ¿verdad?

Por supuesto que si tú tienes una tabla que se llama CONTROL y estás segurísimo de que tiene exactamente una fila también podrías escribir:

SELECT 15 * 4 + 5 FROM CONTROL

Y obtendrás el mismísimo resultado que si hubieras usado la tabla RDB$DATABASE. Pero como quienes escribimos los ejemplos no sabemos como se llama tu tabla que tiene una sola fila entonces usamos la tabla RDB$DATABASE la cual sí sabemos con certeza que tiene exactamente una fila.

Así que, si no lo sabías, ahora ya sabes por qué se usa la tabla RDB$DATABASE en muchos de los ejemplos escritos sobre Firebird.

Artículo relacionado:

El índice del blog Firebird21

Anuncios