Vous êtes sur la page 1sur 13

Bases de Datos Grado en Ingeniera Informtica

Tema 4 - Structured Query Language - Ejercicios


Parte 4-1.
Ej1) La siguiente sentencia SELECT se ejecuta correctamente?
SELECT last_name, job_id, salary AS Sal
FROM employees;

Ej2) La siguiente sentencia SELECT se ejecuta correctamente?


SELECT *
FROM job_grades;

Ej3) En la siguiente sentencia hay cuatro errores de codificacin. Puede identificarlos?


SELECT employee_id, last_name
sal x 12 ANNUAL SALARY
FROM employees;

Se le ha contratado como programador de SQL para Acme Corporation. Su primera tarea


es crear algunos informes segn los datos de las tablas de recursos humanos.

Ej4) Su primera tarea es determinar la estructura de la tabla DEPARTMENTS y su


contenido.

Ej5) Determine la estructura de la tabla EMPLOYEES. El departamento de recursos


humanos desea que una consulta muestre el apellido, ID de cargo, fecha de contratacin
e ID de empleado de cada empleado, con el ID de empleado en primer lugar. Proporcione
un alias STARTDATE para la columna HIRE_DATE.

Ej6) El departamento de recursos humanos desea una consulta para mostrar todos los ID
de cargo nicos de la tabla EMPLOYEES.

Ej7) El departamento de recursos humanos desea cabeceras de columna ms descriptivas


para su informe sobre empleados. Asigne a las cabeceras de columna de la sentencia Ej5
los nombres Emp#, Employee, Job y Hire Date, respectivamente.

Ej8) El departamento de recursos humanos ha solicitado un informe de todos los


empleados y sus ID de cargo. Muestre el apellido concatenado con el ID de cargo
(separado por una coma y un espacio) y asigne a la columna el nombre Employee and
Title.

Ej9) Para familiarizarse con los datos de la tabla EMPLOYEES, cree una consulta para
mostrar todos los datos de dicha tabla. Separe cada salida de la columna por una coma.
Asigne a la columna el ttulo THE_OUTPUT.

Tema 4 - Ejercicios Pgina 1


Bases de Datos Grado en Ingeniera Informtica

Parte 4-2.
El departamento de recursos humanos sigue necesitando su ayuda para crear algunas
consultas.

Ej1) Debido a problemas presupuestarios, el departamento de recursos humanos necesita


un informe que muestre el apellido y el salario de los empleados que ganan ms de 12.000
dlares.

Ej2) Cree un informe que muestre el apellido y el nmero de departamento para el nmero
de empleado 176.

Ej3) El departamento de recursos humanos necesita encontrar los empleados con salarios
tanto altos como bajos. Modifique la sentencia Ej1 para mostrar el apellido y el salario de
cualquier empleado cuyo salario no est entre 5.000 y 12.000 dlares.

Ej4) Cree un informe para mostrar el apellido, ID de cargo y fecha de contratacin de los
empleados cuyos apellidos sean Matos y Taylor. Ordene la consulta en orden ascendente
por fecha de contratacin.

Ej5) Muestre el apellido y el ID de departamento de todos los empleados de los


departamentos 20 o 50 en orden alfabtico ascendente por nombre.

Ej6) Modifique la sentencia Ej3 para mostrar el apellido y el salario de los empleados
que ganan entre 5.000 y 12.000 dlares y estn en el departamento 20 o 50. Etiquete las
columnas Employee y Monthly Salary, respectivamente.

Ej7) El departamento de recursos humanos necesita un informe que muestre el apellido y


la fecha de contratacin de todos los empleados contratados durante el ao 1994.

Ej8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no
tienen un supervisor.

Ej9) Cree un informe para mostrar el apellido, salario y comisin de todos los empleados
que perciben comisiones. Ordene los datos en orden descendente de salario y comisiones.
Utilice la posicin numrica de la columna en la clusula ORDER BY.

Ej10) Muestre todos los apellidos de los empleados cuya tercera letra sea una "a".

Ej11) Muestre los apellidos de los empleados que tengan una "a" y una "e" en su apellido.

Ej12) Muestre el apellido, cargo y salario de todos los empleados que sean vendedores
(SA_REP) u oficinistas en el departamento de stock (ST_CLERK) y cuyos salarios no
sean iguales que 2.500, 3.500 7.000 dlares.

Ej13) Modifique la sentencia Ej6 para mostrar el apellido, salario y comisin de todos
los empleados cuya comisin sea del 20%.

Tema 4 - Ejercicios Pgina 2


Bases de Datos Grado en Ingeniera Informtica

Parte 4-3.
Ej1) Escriba una consulta para mostrar la fecha del sistema. Etiquete la columna como
Date.

Ej2) El departamento de recursos humanos necesita un informe que muestre el nmero


de empleado, apellido, salario y salario aumentado en un 15,5% (expresado como nmero
entero) para cada empleado. Etiquete la columna como New Salary.

Ej3) Modifique la consulta Ej2 para agregar una columna que reste el salario antiguo del
nuevo. Etiquete la columna como Increase.

Ej4) Escriba una consulta que muestre el apellido (con la primera letra en maysculas y
el resto en minsculas) y la longitud del apellido de todos los empleados cuyos nombres
empiecen por las letras "J", "A" o "M". Proporcione a cada columna una etiqueta
adecuada. Ordene los resultados por el apellido de los empleados.

Ej5) El departamento de recursos humanos desea buscar la duracin del contrato de cada
empleado. Para cada empleado, muestre el apellido y calcule el nmero de meses entre el
da de hoy y la fecha de contratacin del empleado. Etiquete la columna como
MONTHS_WORKED. Ordene los resultados por el nmero de meses durante los que ha
trabajado. Redondee el nmero de meses hasta el nmero entero ms cercano.

Ej6) Cree una consulta para mostrar el apellido y el salario de todos los empleados.
Formatee el salario para que tenga 15 caracteres de longitud y tenga un relleno hacia la
izquierda con el smbolo $. Etiquete la columna como SALARY.

Ej7) Cree una consulta que muestre los primeros ocho caracteres de los apellidos de los
empleados y que indique las cantidades de sus salarios con asteriscos. Cada asterisco
significa mil dlares. Ordene los datos en orden descendente de salarios. Etiquete la
columna como EMPLOYEES_AND_THEIR_SALARIES.

Ej8) Cree una consulta para mostrar el apellido y el nmero de semanas durante las que
han trabajado todos los empleados del departamento 90. Etiquete la columna de nmero
de semanas como TENURE. Trunque el valor del nmero de semana en 0 decimales.
Muestre los registros en orden descendente de antigedad del empleado.

Tema 4 - Ejercicios Pgina 3


Bases de Datos Grado en Ingeniera Informtica

Parte 4-4.
Ej1) Cree un informe que produzca los siguientes resultados para cada empleado:
<apellido_empleado> earns <salario> monthly but wants <3 veces el salario.>. Etiquete la
columna como Dream Salaries.

Ej2) Muestre el apellido, fecha de contratacin y fecha de revisin de salario de cada


empleado, que es el primer lunes despus de seis meses de contrato. Etiquete la columna
como REVIEW. Formatee las fechas para que aparezcan en un formato similar a Lunes
treinta y uno de julio de 2000.

Ej3) Muestre el apellido, fecha de contratacin y da de la semana en el que empez a


trabajar el empleado. Etiquete la columna como DAY. Ordene los resultados por el da de
la semana, empezando por el lunes.

Ej4) Cree una consulta que muestre los apellidos y comisiones de los empleados. Si un
empleado no obtiene ninguna comisin, indique "No Commission". Etiquete la columna
como COMM.

Ej5) Con la funcin DECODE, escriba una consulta que muestre el grado de todos los
empleados segn el valor de la columna JOB_ID, utilizando los siguientes datos:
Cargo Grado
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
Otro 0

6) Vuelva a escribir la sentencia Ej5 utilizando la sintaxis CASE.

Tema 4 - Ejercicios Pgina 4


Bases de Datos Grado en Ingeniera Informtica

Parte 4-5.

Ej1) Las funciones de grupo funcionan en varias filas para producir un resultado por
grupo?

Ej2) Las funciones de grupo incluyen valores nulos en los clculos?

Ej3) La clusula WHERE restringe las filas antes de incluirlas en un clculo de grupo?

El departamento de recursos humanos necesita los siguientes informes:

Ej4) Encontrar el valor ms alto, el valor ms bajo, la suma y la media del salario de todos
los empleados. Etiquete las columnas como Maximum, Minimum, Sum y Average,
respectivamente. Redondee los resultados al nmero entero ms cercano.

Ej5) Modifique la consulta Ej4 para mostrar el valor mnimo, el valor mximo, la suma
y la media del salario de cada tipo de cargo.

Ej6) Escriba una consulta para mostrar el nmero de personas con el mismo cargo.

Ej7) Determine el nmero de gestores sin enumerarlos en una lista. Etiquete la columna
Number of Managers. Para ello, utilice la columna MANAGER_ID.

Ej8) Busque la diferencia entre los salarios ms altos y ms bajos. Etiquete la columna
como DIFFERENCE.

Ej9) Cree un informe para mostrar el nmero de gestor y el salario del empleado con
menor sueldo de ese gestor. Excluya a cualquier trabajador del que desconozca su gestor.
Excluya cualquier grupo en el que el salario mnimo sea 6.000 dlares o menos. Ordene
la salida en orden descendente de salarios.

Ej10) Cree una consulta para mostrar el nmero total de empleados y, de ese total, el
nmero de empleados contratados en 1995, 1996, 1997 y 1998. Cree las cabeceras de
columna adecuadas.

Ej11) Cree una consulta de matriz para mostrar el cargo, el salario de ese cargo segn el
nmero de departamento y el salario total del cargo para los departamentos 20, 50, 80 y
90, proporcionando a cada columna una cabecera adecuada.

Tema 4 - Ejercicios Pgina 5


Bases de Datos Grado en Ingeniera Informtica

Parte 4-6.
Ej1) Escriba una consulta para que el departamento de recursos humanos genere las
direcciones de todos los departamentos. Utilice las tablas LOCATIONS y COUNTRIES.
Muestre el ID de ubicacin, direccin, ciudad, estado o provincia y pas en la salida.
Utilice NATURAL JOIN para producir los resultados.

Ej2) El departamento de recursos humanos necesita un informe slo de los empleados


con los departamentos correspondientes. Escriba una consulta para mostrar el apellido,
nmero y nombre de departamento de estos empleados.

Ej3) El departamento de recursos humanos necesita un informe de todos los empleados


de Toronto. Muestre el apellido, cargo, nmero y nombre de departamento de todos los
empleados que trabajan en Toronto.

Ej4) Cree un informe para mostrar el apellido y nmero de empleado junto con el apellido
y nmero de gestor del empleado. Etiquete las columnas como Employee, Emp#, Manager
y Mgr#, respectivamente.

Ej5) Modifique Ej4 para mostrar todos los empleados, incluido King, que no tienen
gestor. Ordene los resultados por nmero de empleado.

Ej6) Cree un informe del departamento de recursos humanos que muestre los apellidos y
nmeros de empleado y todos los empleados que trabajen en el mismo departamento
como un empleado determinado. Proporcione a cada columna una etiqueta adecuada.

Ej7) El departamento de recursos humanos desea determinar los nombres de todos los
empleados contratados despus de Davies. Cree una consulta para mostrar el nombre y la
fecha de contratacin de cualquier empleado contratado despus del empleado Davies.

Ej8) El departamento de recursos humanos necesita buscar el nombre y la fecha de


contratacin de todos los empleados contratados antes que sus gestores, junto con el
nombre y fecha de contratacin del gestor.

Tema 4 - Ejercicios Pgina 6


Bases de Datos Grado en Ingeniera Informtica

Parte 4-6bis.
Resuelva los ejercicios utilizando la sintaxis de unin en Oracle.

Ej1) Escriba una consulta para que el departamento de recursos humanos genere las
direcciones de todos los departamentos. Utilice las tablas LOCATIONS y COUNTRIES.
Muestre el ID de ubicacin, direccin, ciudad, estado o provincia y pas en la salida.

Ej2) El departamento de recursos humanos necesita un informe de todos los empleados.


Escriba una consulta para mostrar el apellido, nmero y nombre de departamento de todos
los empleados.

Ej3) El departamento de recursos humanos necesita un informe de todos los empleados


de Toronto. Muestre el apellido, cargo, nmero y nombre de departamento de todos los
empleados que trabajan en Toronto.

Ej4) Cree un informe para mostrar el apellido y nmero de empleado junto con el apellido
y nmero de gestor de sus gestores. Etiquete las columnas como Employee, Emp#, Manager
y Mgr#, respectivamente.

Ej5) Modifique Ej4 para mostrar todos los empleados, incluido King, que no tienen
gestor. Ordene los resultados por nmero de empleado.

Ej6) Cree un informe del departamento de recursos humanos que muestre los apellidos y
nmeros de empleado y todos los empleados que trabajen en el mismo departamento
como un empleado determinado. Proporcione a cada columna una etiqueta adecuada.

Ej7) El departamento de recursos humanos desea determinar los nombres de todos los
empleados contratados despus de Davies. Cree una consulta para mostrar el nombre y la
fecha de contratacin de cualquier empleado contratado despus del empleado Davies.

Ej8) El departamento de recursos humanos necesita buscar el nombre y la fecha de


contratacin de todos los empleados contratados antes que sus gestores, junto con el
nombre y fecha de contratacin del gestor.

Tema 4 - Ejercicios Pgina 7


Bases de Datos Grado en Ingeniera Informtica

Parte 4-7.
Ej1) Cree un informe que muestre el nmero de empleado, apellido y salario de todos los
empleados que ganan ms del salario medio. Ordene los resultados en orden ascendente
de salario.

Ej2) Escriba una consulta que muestre el nmero de empleado y el apellido de todos los
empleados que trabajan en un departamento con un empleado cuyo apellido contiene una
"u".

Ej3) El departamento de recursos humanos necesita un informe que muestre el apellido,


nmero de departamento e ID de cargo de todos los empleados cuyo ID de ubicacin de
departamento sea 1700.

Ej5) Cree un informe para el departamento de recursos humanos que muestre el nmero
de departamento, apellido e ID de cargo de cada empleado del departamento Executive.

Ej6) Cree un informe que muestre una lista de todos los empleados cuyo salario sea mayor
que el salario de los empleados del departamento 60.

Ej7) Modifique la consulta Ej2 para mostrar el nmero de empleado, apellido y salario
de todos los empleados que ganan ms del salario medio y que trabajan en un
departamento con cualquier empleado cuyo apellido contiene una "u".

Tema 4 - Ejercicios Pgina 8


Bases de Datos Grado en Ingeniera Informtica

Parte 4-8.
Ej1) El departamento de recursos humanos necesita una lista de ID de departamento que
no contienen el ID de cargo ST_CLERK. Utilice los operadores de definicin para crear
este informe.

Ej2) El departamento de recursos humanos necesita una lista de pases que no tienen
ningn departamento. Muestre el ID de pas y el nombre de los pases. Utilice los
operadores de definicin para crear este informe.

Ej3) Cree una lista de cargos para los departamentos 10, 50 y 20, en ese orden. Muestre
los ID de cargo y departamento mediante los operadores de definicin.

Ej4) Cree un informe que muestre los ID de empleado y de cargo de los empleados que
actualmente tienen un puesto que es el mismo que tenan cuando fueron contratados (es
decir, han cambiado de cargo pero ahora han vuelto a su puesto original).

Ej5) El departamento de recursos humanos necesita un informe con las siguientes


especificaciones:
ID de departamento y apellido de todos los empleados de la tabla EMPLOYEES,
independientemente de si pertenecen o no a un departamento.
El nombre e ID de departamento de todos los departamentos de la tabla
DEPARTMENTS, independientemente de si hay o no empleados trabajando en
dichos departamentos.
Para ello, escriba una consulta compuesta.

Tema 4 - Ejercicios Pgina 9


Bases de Datos Grado en Ingeniera Informtica

Parte 4-9.
Para realizar estos ejercicios necesitar utilizar la tabla MY_EMPLOYEE. Ejecute el
siguiente cdigo para hacerlo:
CREATE TABLE my_employee (
id NUMBER(4),
last_name VARCHAR2(25),
first_name VARCHAR2(25),
userid VARCHAR2(8),
salary NUMBER(8,2),
PRIMARY KEY(id)
);

Ej1) Describa la estructura de la tabla MY_EMPLOYEE para identificar los nombres de


las columnas.

Ej2) Cree una sentencia INSERT para agregar la primera fila de datos a la tabla
MY_EMPLOYEE a partir de los siguientes datos de ejemplo. No muestre la lista de
columnas en la clusula INSERT. No introduzca an todas las filas.

Ej3) Rellene la tabla MY_EMPLOYEE con la segunda fila de datos de ejemplo de la lista
anterior. En esta ocasin, muestre explcitamente la lista de columnas en la clusula
INSERT.

Ej4) Escriba una sentencia INSERT en un archivo de script reutilizable para cargar las
filas restantes en la tabla MY_EMPLOYEE. El script se debe solicitar para todas las
columnas (ID, LAST_NAME, FIRST_NAME, USERID y SALARY).

Ej5) Cambie el apellido del empleado 3 a Drexler.

Ej6) Cambie el salario a 1.000 dlares para todos los empleados con un salario inferior a
900.

Ej7) Suprima Betty Dancs de la tabla MY_EMPLOYEE.

Tema 4 - Ejercicios Pgina 10


Bases de Datos Grado en Ingeniera Informtica

Ej8) Modifique el script Ej4 de forma que USERID se genere automticamente


concatenando la primera letra del primer nombre y de los primeros siete caracteres del
apellido. El USERID generado debe estar en minscula. Por lo tanto, no se debe solicitar
el script para el USERID.

Tema 4 - Ejercicios Pgina 11


Bases de Datos Grado en Ingeniera Informtica

Parte 4-10.
Ej1) Cree la tabla DEPT segn el siguiente grfico de instancias de tabla.

Ej2) Rellene la tabla DEPT con datos de la tabla DEPARTMENTS. Incluya slo las
columnas que necesite.

Ej3) Cree la tabla EMP segn el siguiente grfico de instancias de tabla.

Ej4) Cree la tabla EMPLOYEES2 segn la estructura de la tabla EMPLOYEES. Incluya


slo las columnas EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY y
DEPARTMENT_ID. Asigne a las columnas de la tabla los nombres ID, FIRST_NAME,
LAST_NAME, SALARY y DEPT_ID, respectivamente.

Ej5) Borre la tabla EMPLOYEES2.

Tema 4 - Ejercicios Pgina 12


Bases de Datos Grado en Ingeniera Informtica

Parte 4-11.
Ej1) El personal del departamento de recursos humanos desea ocultar algunos de los datos
de la tabla EMPLOYEES. Cree una vista denominada EMPLOYEES_VU basada en los
nmeros y los apellidos de los empleados y en los nmeros de departamento de la tabla
EMPLOYEES. La cabecera del nombre de empleado debe ser EMPLOYEE.

Ej2) Con la vista EMPLOYEES_VU, escriba una consulta para el departamento de


recursos humanos para visualizar todos los nombres de empleados y nmeros de
departamento.

Ej3) El departamento 50 necesita acceso a los datos de los empleados. Cree una vista con
el nombre DEPT50 que contenga los nmeros y apellidos de los empleados y los nmeros
de departamento de todos los empleados del departamento 50. Se le ha pedido que
etiquete las columnas de la vista como EMPNO, EMPLOYEE y DEPTNO. Por motivos de
seguridad, no permita la reasignacin de un empleado a otro departamento a travs de la
vista.

Ej4) Cree un sinnimo para la tabla EMPLOYEES. Llmelo EMP.

Tema 4 - Ejercicios Pgina 13

Vous aimerez peut-être aussi