¿Cuál es el punto (si existe) para tener una tabla en una base de datos con una sola fila?
Una base de datos relacional almacena cosas como relaciones: una serie de datos que satisfacen alguna relación.
Me gusta, este: "a VAT
de este porcentaje está vigente en mi país ahora".
Si solo una tupla satisface esta relación, entonces sí, será la única en la tabla.
SQL
no se puede almacenar variables: puede almacenar un conjunto que consta de 1
elemento, esto es una tabla de una fila.
También, SQL
es un lenguaje basado en conjunto, y para algunas operaciones necesita un conjunto falso de una sola fila, como, para seleccionar una expresión constante.
No se puede simplemente SELECT
de la nada en Oracle
, necesita una cláusula FROM
.
Oracle
tiene un pseudotable, dual
, que contiene una sola fila y una sola columna.
Una vez, hace mucho tiempo, que solía tener dos filas (de ahí el nombre dual
), pero perdió su segunda fila en algún lugar de su camino a la versión 7
.
MySQL
tiene este pseudotable también, pero MySQL
es capaz de hacer selects sin FROM
cláusula. Aún así, es útil cuando se necesita un conjunto de filas vacías: SELECT 1 FROM dual WHERE NULL
yo sólo he observado en algún código que estoy revisando tres mesas diferentes que contienen tres tipos diferentes de certificados (a la SSL
), cada uno con exactamente una fila. No entiendo por qué esto no está hecho en una mesa grande; Supongo que me estoy perdiendo algo.
Puede ser una especie de "tenerlo todo o perder" escenario, cuando se necesitan los tres certificados a la vez:
SELECT *
FROM ssl1
CROSS JOIN
ssl2
CROSS JOIN
ssl3
Si alguno si los certificados no se encuentra, toda la consulta no devuelve nada .
Si puede, ¿por qué no le pide al desarrollador una explicación en persona? – Juliet
Además, ¿esto no conduce a un 'olor a programación'? Dado que no hay mecanismos en una base de datos que pueda usar para especificar una tabla con una sola fila, ¿sería posible colocar accidentalmente dos elementos en la tabla y usar datos incorrectos cuando los consulte más adelante? –
@Jeremy: Puede abusar de los mecanismos en la mayoría de los RDBM para imponer un límite de 1 fila, como definir una columna de clave principal (o clave única) y luego también agregar una restricción de verificación en la misma columna que permite solo un valor. No es agradable, aunque –