|
|
MODULO
3
Ejercicio 4: Usar técnicas avanzadas de consulta para recuperar datos.
En este ejercicio se utilizará el comando SELECT para recuperar datos utilizando técnicas avanzadas para recuperar datos de la base de datos Pubs. Los comandos SELECT incluirán combinaciones o subconsultas y se utilizarán para resumir datos.
Para completar este ejercicio Ud. podrá utilizar el “SQLServer On-line“ de nuestro sitio para probar las diferentes consultas que construya.
En cada punto de este ejercicio, Ud. deberá construir los correspondientes comandos de consulta, probarlos y luego guardarlos en un documento de texto que nos será remitido para su corrección. Recuerde que puede utilizar los canales de consulta habilitados para evacuar cualquier duda.
NOTA: En este ejercicio se utilizará la base de datos Pubs, tal como viene en el SQLServer en idioma inglés, esto se hace así para permitir que aquellos que prefieran práctica sobre versiones que ya tengan instaladas en sus propios servidores puedan hacerlo.
a)
Usar inner join para recuperar datos
Construya una consulta que recupere un conjunto de resultados con las columnas: emp_id (identificación del empleado) y lname (apellido) de la tabla Employee (empleados) y el nombre de la editorial a la que pertenece (columna pub_name) asociada con cada empleado. Dado que el nombre de la editorial se encuentra en otra tabla, Publishers (editoriales) se deben combinar las tablas Employee y Publishers y utilizar el ID de la editorial en la condición de combinación. La columna pub_id es una clave foránea en la tabla Employee para la columna pub_id de la tabla Publishers.
Utilice alias para las tablas Employee y Publishers.
Muestre sólo las filas correspondientes a editoriales ubicadas en USA, ordenadas primero por editorial y luego por apellido del empleado
b)
Usar outer join izquierdo para recuperar datos
Construya una consulta que recupere un conjunto de resultados con las columnas emp_id y lname de la tabla Employee y las columna job_desc (descripción del trabajo) de la tabla Jobs (trabajos) asociados con cada empleado.
La condición de combinación deberá usar las columnas job_id (id del trabajo) de ambas tablas para establecer la asociación. Además, la condición de combinación deberá calificar para ser combinadas sólo aquellas filas en donde el valor de la columna job_lvl (nivel del trabajo) de la tabla Employee sea igual al valor de la columna max_lvl (máximo nivel) de la tabla Jobs.
El orden de combinación de las tablas deberá ser: a la izquierda la tabla Employee y a la derecha la tabla Jobs.
Ordenar las filas por job_desc.
Utilizar left outer join.
Fíjese que al utilizar un outer join izquierdo el conjunto de resultados contendrá una fila por cada fila que exista en la tabla Employee, mientras que en la columna del conjunto de resultados correspondiente a la tabla Jobs, sólo figurarán valores no nulos en aquellas filas que cumplan con la condición de combinación especificada, si se hubiese utilizado un inner join se retornarían menos filas y ninguna con valores nulos en las columnas de la tabla derecha.
c)
Usar outer join derecho para recuperar datos
Construya la misma consulta del punto anterior utilizando outer join derecho.
Indique en que cambia el comportamiento del conjunto de resultados.
Fundamente.
d)
Usar outer join completo para recuperar datos
Construya las mismas consultas del punto anterior utilizando outer join completo.
Indique en que cambia el comportamiento del conjunto de resultados.
Fundamente.
e)
Usar la palabra clave IN en una subconsulta
Construya una consulta que incluya una subconsulta y la palabra clave IN para recuperar un conjunto de resultados de dos columnas (title_id y title) de la tabla Titles, de aquellas titulos que hayan sido publicados por editores de la ciudad de Berkeley , columna city (ciudad) de la tabla Publishers.
Ordenar por title.
f)
Usar operadores de comparación y la palabra clave ALL en una
subconsulta.
Construya una consulta que incluya la palabra clave ALL en una comparación y una subconsulta (con una combinación); para recuperar un conjunto de resultados de dos columnas (title y price) de la tabla Titles y una sola fila, para listar aquellos títulos que tienen un valor mayor al de cualquier libro de Binnet & Hardley"
g)
Usar la palabra clave EXISTS en una
subconsulta.
Construya una consulta que incluya la palabra clave EXISTS y una subconsulta; para recuperar un conjunto de resultados de dos columnas (emp_id y lname) de la tabla Employee, para obtener aquellos empleados que trabajen en editoriales de USA
Ordenar por emp_id.