5. Las palabras clave exist y no exist estan diseñadas para utilizarlas unicamente dentro de una subconsulta. Estas palabras clave producen un simple resultado de tipo verdadero / falso. Exist es verdadera si y solo si existe una fila en la tabla de resultados y Es falsa si la subconsulta devuelve una tabla de resultados vacia. No exist es la condicion opuesta a exist. Exist y no exist solo comprueban la existencia o no existencia de filas en la tabla de resultados de la subconsulta, la subconsulta puede tener cualquier numero columnas.
6. SELECT hotelname, city FROM hotel a WHERE EXISTS (select * FROM room b WHERE a.hotelno = b.hotelno AND type = ‘doble'); MUESTRA TODOS LOS HOTELES DONDE EXISTE RESERVACIONES EN HABITACIONES DOBLES
7. SELECT notelname, city FROM hotel a WHERE NO EXISTS (select * FROM room b WHERE a.hotelno = b.hotelno AND type = 'simple'); MUESTRA TODOS LOS HOTELES DONDE NO EXISTE RESERVACIONES EN HABITACIONES SIMPLES
8. En sql podemos utilizar las operaciones normales de conjuntos union, interseccion y diferencia para combinar los resultados de dos o mas consultas en una unica tabla de resultados. Union de dos tablas a y b, es una tabla que contiene todas las filas que estan incluidas en a, en b o en ambas. Intercepcion de dos tablas es una tabla que contiene todas las filas que son comunes tanto en a como en b. Diferencia de dos tablas es una tabla que contiene todas las filas que están contenidas en a pero no en b.
9. SELECT * FROM hotel WHERE (hotelno = 10001) UNION SELECT * FROM hotel WHERE (hotelno = 10003); Existen restricciones sobre las tablas que pueden combinarse mediante estas operaciones de conjuntos, siendo la mas importante aquella que explica que las tablas deben ser compatibles respecto a la union Deben tener la misma estructura, esto implica que las dos tablas pueden contener el mismo numero de columnas y que sus correspondentes columnas deben tener el mismo tipo de dato y longitudes.
11. (SELECT hotelno FROM room WHERE (roomno = 20001) INTERSECT SELECT hotelno FROM booking WHERE (roomno = 20001); Al realizar la consulta utilizando intersect, se ejecutan las sentencias generando una tabla de resultados para la primera consulta y otra tabla a partir de la segunda consulta y luego creando una unica tabla de resultados compuesta por todas las filas que sean comunes a ambas tablas.
12. RESULTADO DE LA INTERCEPCION DE LOS ELEMENTOS DE LAS TABLAS ROOM Y BOOKING
13. SELECT DISTINCT hotelno FROM Hotel WHERE hotelno NOT IN (SELECT hotelno FROM Room WHERE type = 'Doble'); Al realizar la consulta utilizando except se produce una tabla de resultados a partir de la primera consutla y otra tabla de la segunda, luego se crea una tabla compuesta por las flas que aparecen en la primera tabla de resultados, pero no en la segunda
14. RESULTADO DE LA DISTINCION DEL NUMERO DE HOTEL EN DONDE EN CUARTOS DOBLES HAY RESERVACIONES Todos excepto estas condiciones