You are on page 1of 9

Control 7

María José Burgos Cabrera

Administración de Base de Datos

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

anteriormente me solicitan en el enunciado con los siguientes comandos:

Create Database Control7


use control7

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 mostraré el resultado del insert:


Ahora resolvemos los puntos indicados por el docente:
1.- Configurar el modo de operación tradicional de forma global para la base de datos.
Le asignamos el modo “ANSI” ya que es el modo más utilizado y se utiliza para cumplir la
cabalidad del estándar de SQL.

2.- Determinar el código de departamento, el nombre de departamento y el número de empleados


del departamento con más empleados.
Podemos saber el número máximo de empleados por cada departamento con el siguiente query:

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”

Acá podemos saber el máximo de empleados por departamentos en general:


4.- Obtener la suma de salarios, el salario máximo y el salario mínimo por cada departamento.
Individualmente:

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.

You might also like