Professional Documents
Culture Documents
Instituto IACC
11-17/09/2018
PROBLEMA
En la empresa para la cual usted trabaja, se tomarán decisiones sobre la estructura organizacional
por lo que requieren información sobre la distribución de los empleados y algunos datos con
respecto a su salario. Suponga que existe una base de datos en MySQL, con la siguiente
información:
Una tabla de departamentos con las columnas de código y nombre.
Adicionalmente se tiene la tabla de empleados con las columnas: código, nombre del empleado,
fecha de nacimiento, renta líquida, código del departamento en el que trabaja.
Realice la creación de las tablas mencionadas e incorpore la siguiente información, para la cual
deberá asignar datos ficticios para los campos de código empleado, nombre del empleado, fecha
de nacimiento (note que se le indica la cantidad de empleados a crear y sus respectivas rentas
líquidas):
Se solicita que realice, en lenguaje SQL, las secuencias de comandos para lo siguiente:
1.- Configurar el modo de operación tradicional de forma global para la base de datos.
2.- Determinar el código de departamento, el nombre de departamento y el número de empleados
del departamento con más empleados.
3.- Buscar el número máximo de empleados que hay en el departamento de ventas (código 08).
4.- Obtener la suma de salarios, el salario máximo y el salario mínimo por cada departamento.
DESARROLLO
En primer lugar voy a crear una Base de datos para responder a los requerimientos que
A continuación creo las nuevas tablas a utilizar, tabla Departamentos y Empleados, tener en
cuenta que Empleados contiene departamentos, por lo tanto lo agregaré con Foreing Key,
además al código del empleado, se le agregará un auto increment, ya que el código del empleado
es un dato único:
Ahora insertamos los registros a las tablas, según los datos indicados por el docente:
Verifico que se insertaron los registros:
En primer lugar se inserté los datos de Departamentos, ya que esa tabla no contiene datos de
referencia o campos de Foreing Key, tener en cuenta que no se insertara dentro del query el
Código del Empleado, ya que es un dato automático.
Ahora agregamos los datos de la tabla empleados:
Ahora necesito saber únicamente el departamento con más empleados, utilizamos el siguiente
query:
A veces, cuando uno está realizando consultas a las tablas, sólo necesita una única fila. En estos
casos debes solicitar a la base de datos un único resultado, o de lo contrario comprobará todos y
cada uno de las coincidencias de la cláusula WHERE.
En estos casos, añadir LIMIT 1 a tu query puede mejorar significativamente la velocidad. De
esta forma la base de datos dejará de escanear resultados en el momento que encuentre uno, en
lugar de recorrer toda la tabla o un índice.
En MySql no funciona el Top 1, por lo tanto se reemplaza por Limit 1, por las razones que
anteriormente mencioné.
3.- Buscar el número máximo de empleados que hay en el departamento de ventas (código 08).
Máximo empleado en 1 solo departamento “VENTAS”
Agrupo todos los Departamentos con un Group By, donde puedo saber un resumen completo de
todos los departamentos con sus salarios:
Bibliografía
Material semana 7.
Videos de YouTube.