EXISTS usa una subconsulta como condición, donde la condición es verdadera si la subconsulta devuelve alguna fila, y falsa si la subconsulta no devuelve ninguna fila; esta es una característica no intuitiva con sólo algunos usos. Sin embargo, si un empleado quiere ver la lista de Propietarios sólo si hay sillas disponibles, intenta:
SELECT NOMBREPROPIETARIO, APELLIDOPROPIETARIO
FROM PROPIETARIOS_ANTIGÜEDADES
WHERE EXISTS
(SELECT *
FROM ANTIGÜEDADES
WHERE PRODUCTO = 'Silla');
Si hay alguna silla en la columna Antigüedades, la subconsulta devolverá una o varias filas, haciendo la cláusula EXISTS verdadera, haciendo que SQL liste los antigüos propietarios. Si no ha habido sillas, ninguna fila será devuelta por la subconsulta.
ALL es otra construcción poco usual , como las consultas ALL pueden ser usadas con diferentes y simples métodos, veamos un ejemplo de consulta:
SELECT ID_COMPRADOR, PRODUCTO
FROM ANTIGÜEDADES
WHERE PRECIO = ALL
(SELECT PRECIO
FROM ANTIGÜEDADES);
Esto devolverá el precio de producto más alto (o más de un producto si hay un empate), y su comprador. La subconsulta devuelve una lista de todos los precios de la tabla Antigüedades, y la consulta de salida va fila por fila de la tabla Antigüedades y si el precio es mayor o igual a todos (o ALL) precios en la lista, es listado, dando el precio del producto más caro. La razón de "=" es que el mayor precio en la lista puede ser igual al de la lista, ya que este producto está en la lista de precios.
Usuarios que han visto este tema también han visto...
- Bases de Datos Externas en SQL
- Tipos de datos en SQL
- Arquitectura de las bases de datos
- Omitir los Permisos de Ejecución en SQL
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.