Вы находитесь на странице: 1из 4

INSTITUTO PROFESIONAL VIRGINIO GMEZ ESCUELA DE INFORMTICA

Bases de Datos
Prctico Leccin N4
A) CONSULTA A MAS DE UNA TABLA: 1.- Escriba una consulta SQL que despliegue el apellido, numero de departamento y nombre de departamento de todos los empleados. Utilice alias apropiados en cada columna y ordene esta consulta por apellido. Empleado N Depto Nombre Departamento ------------------------- ---------------- ------------------------------Abel 80 Sales Davies 50 Shipping . Whalen 10 Administracin Zlotkey 80 Sales 19 filas seleccionadas SELECT E.APELLIDO, E.DEPARTAMENTO_ID, D.DEPT_NOMBRE FROM EMPLEADOS E JOIN DEPARTAMENTOS D ON(E.DEPARTAMENTO_ID=D.DEPARTAMENTO_ID) ORDER BY E.APELLIDO ASC 2.- Escriba una consulta SQL que despliegue un nico cargo con su nombre para todos los empleados que trabajan en el departamento 80. Incluya el lugar del departamento en la salida. CARGO -----------SA_MAN SA_REP NOMBRE CARGO --------------------------------SALES MANAGER SALES REPRESENTATIVE LUGAR -----------------2500 2500

SELECT DISTINCT(E.CARGO_ID), C.NOMBRE_CARGO,D.LUGAR_ID FROM EMPLEADOS E JOIN CARGOS C ON(E.CARGO_ID=C.CARGO_ID) JOIN DEPARTAMENTOS D ON(E.DEPARTAMENTO_ID = D.DEPARTAMENTO_ID) JOIN LUGARES L ON(D.LUGAR_ID=L.LUGAR_ID) WHERE E.DEPARTAMENTO_ID=80;

BASE DE DATOS / ORACLE 9i

INSTITUTO PROFESIONAL VIRGINIO GMEZ ESCUELA DE INFORMTICA 3.- Escriba una consulta SQL que despliegue apellido, nombre de departamento, lugar id y ciudad de todos los empleados que ganan comisin. APELLIDO --------------------Zlotkey Abel Taylor DEPT_NOMBRE -----------------------------Sales Sales Sales LUGAR_ID ----------------2500 2500 2500 CIUDAD ------------Oxford Oxford Oxford

SELECT E.APELLIDO, D.DEPT_NOMBRE, D.LUGAR_ID, L.CIUDAD FROM EMPLEADOS E JOIN DEPARTAMENTOS D ON (E.DEPARTAMENTO_ID = D.DEPARTAMENTO_ID) JOIN LUGARES L ON (D.LUGAR_ID = L.LUGAR_ID) WHERE E.COMISION_PORC IS NOT NULL; 4.- Escriba una consulta SQL que despliegue el apellido y nombre del departamento en mayscula de todos aquellos empleados que tengan la letra a minscula en su apellido. Guarde Esta consulta en un archivo de nombre lab4_4.sql. APELLIDO ------------------------Kochhar De Haan .................... Hartstein Fay DEPARTAMENTO -------------------------EXECUTIVE EXECUTIVE MARKETING MARKETING

SELECT E.APELLIDO, UPPER(D.DEPT_NOMBRE) FROM EMPLEADOS E JOIN DEPARTAMENTOS D ON (E.DEPARTAMENTO_ID = D.DEPARTAMENTO_ID) WHERE E.APELLIDO LIKE '%A%'; 5.- Escriba una consulta SQL que despliegue el apellido, cargo, nmero de departamento y nombre del departamento de todos los empleados que trabajan en Toronto. APELLIDO ----------------Hartstein Fay CARGO_ID DEPARTAMENTO_ID DEPT_NOMBRE ------------------- ------------------------------ -------------------------MK_MAN 20 Marketing MK_REP 20 Marketing

SELECT E.APELLIDO, E.CARGO_ID, E.DEPARTAMENTO_ID, D.DEPT_NOMBRE FROM EMPLEADOS E JOIN DEPARTAMENTOS D ON (E.DEPARTAMENTO_ID = D.DEPARTAMENTO_ID) JOIN LUGARES L ON (D.LUGAR_ID = L.LUGAR_ID) WHERE L.CIUDAD = 'TORONTO';

BASE DE DATOS / ORACLE 9i

INSTITUTO PROFESIONAL VIRGINIO GMEZ ESCUELA DE INFORMTICA 6.- Escriba una consulta SQL que despliegue el apellido, nmero de empleado , nombre de su jefe y nmero de su jefe. Ponga los siguientes alias a las columnas: Empleado, NEmp, Jefe, NJefe respectivamente. Guarde su consulta como lab4_6.sql. Empleado Kochhar De Haan Mourgos ..................... 19 filas seleccionadas Nemp 101 102 124 .................... Jefe King King King .............. NJefe 100 100 100 ...........

SELECT E.APELLIDO, E.EMPLEADO_ID, JEFE.APELLIDO, E.JEFE_ID FROM EMPLEADOS E LEFT OUTER JOIN EMPLEADOS JEFE ON (E.JEFE_ID = JEFE.EMPLEADO_ID); 7.- A partir de la consulta en lab4_6, genere una consulta que despliegue a todos los empleados incluyendo a King que no tiene jefe. Guarde esta consulta como lab4_7.sql Empleado King Kochhar De Haan Mourgos ..................... 20 filas seleccionadas Nemp 100 101 102 124 .................... Jefe King King King .............. NJefe 100 100 100 ...........

8.- Escriba una consulta SQL que despliegue el apellido, cargo_id y nombre del cargo para todos los empleados ( 20 filas seleccionadas) . SELECT E.APELLIDO,E.CARGO_ID,C.NOMBRE_CARGO FROM EMPLEADOS E JOIN CARGOS C ON (E.CARGO_ID = C.CARGO_ID); 9.- Escriba una consulta SQL que despliegue apellido, nombre, nombre de departamento, nombre del cargo y salario de todos los empleados. Use alias apropiados en todas las columnas y ordene esta consulta por salario en forma descendente ( 20 filas seleccionadas). SELECT E.APELLIDO, E.NOMBRE, D.DEPT_NOMBRE, C.NOMBRE_CARGO, E.SALARIO FROM EMPLEADOS E LEFT OUTER JOIN CARGOS C ON (E.CARGO_ID = C.CARGO_ID) LEFT OUTER JOIN DEPARTAMENTOS D ON (D.DEPARTAMENTO_ID = E.DEPARTAMENTO_ID) ORDER BY E.SALARIO DESC; 10.- Escriba una consulta SQL que despliegue el nombre, apellido y nombre del departamento en mayscula de todos aquellos empleados que ganan un salario mensual mayor a US$4000 y que tengan la letra a y la letra e minscula en su apellido ( 3 filas seleccionadas) SELECT E.NOMBRE, E.APELLIDO,UPPER(D.DEPT_NOMBRE) FROM EMPLEADOS E JOIN DEPARTAMENTOS D ON (E.DEPARTAMENTO_ID = D.DEPARTAMENTO_ID) WHERE E.SALARIO>4000 AND (E.APELLIDO LIKE '%A%' AND E.APELLIDO LIKE '%E%');

BASE DE DATOS / ORACLE 9i

INSTITUTO PROFESIONAL VIRGINIO GMEZ ESCUELA DE INFORMTICA 11.- Escriba una consulta SQL que despliegue el apellido, nmero de departamento y todos los empleados que trabajan en el mismo departamento de dicho empleado (42 filas seleccionadas).

BASE DE DATOS / ORACLE 9i

Вам также может понравиться