PracticoBDR RH
PracticoBDR RH
PracticoBDR RH
Trabajo en Grupo
PRÁCTICO
En este práctico, aprenderá sobre una base de datos de ejemplo SQL llamada Recursos Humanos que gestiona los datos de bdrh de las pequeñas empresas, el siguiente
diagrama de la base de datos ilustra la base de datos de ejemplo bdrh:
HERRAMIENTAS SOFTWARE
Mientras que las herramientas como PhpMyAdmin interactúan con las bases de datos MySQL / Mariadb con mucha facilidad, a veces se debe acceder a la base de datos
directamente desde la línea de comandos. El ejercicio se desarrollará en la consola de comandos, tenga en cuenta tomar los pantallazos necesarios para ilustrar cada consulta y
generar la descripción de la sentencia escrita en SQL y que busca presentar.
La base de datos de ejemplo bdrh consta de siete (7) tablas que se describen a continuación:
SHOW DATABASES;
La sentencia lista las bases de datos contenidas en MariaDB.
SHOW DATABASES;
Utilizando nuevamente el comando se evidencia la creación de la nueva base de datos bdrh.
SHOW TABLES;
Listar las tablas creadas para evidenciar que están las 7 tablas.
DESCRIBE regiones;
Imprime la estructura de la tabla y da evidencia para poder cargar los datos.
DESCRIBE paises;
Imprime la estructura de la tabla paises y da evidencia para poder cargar los datos.
DESCRIBE regiones;
Se evidencia que tiene dos columnas con el mismo propósito, sin embargo, se borra la columna pais_name para que la tabla quede con una misma manera de crear los nombres
de las columnas.
ALTER TABLE paises DROP COLUMN pais_name;
En este taller, aprenderás a usar la cláusula SQL DROP COLUMN para eliminar una o más columnas de una tabla existente, en este caso se elimina la columna pais_name;
CONSULTA DE DATOS
Después de haber cargado los datos a las tablas de la base de datos se harán consultas para listar los datos buscados.
SELECT * FROM trabajos;
SELECT * FROM empleados;
SELECT * FROM dependientes;
SELECT * FROM departamentos;
SELECT * FROM ubicaciones;
SELECT * FROM paises;
SELECT * FROM regiones;
SELECT
empleado_id, nombres, apellidos, fecha_ingreso
FROM
empleados;
-
SELECT
nombres, apellidos, salario, salario * 1.05
FROM
empleados;
-
SELECT
nombres, apellidos, salario, salario * 1.05 AS nuevo_salario
FROM
empleados;
Consulta que extrae los nombres, apellidos y salario actual de los empleados, y además calcula y devuelve el salario incrementado en un 5%,
etiquetando -
SELECT
empleado_id, nombres, apellidos, fecha_ingreso, salario
FROM
empleados
ORDER BY
nombres;
-
SELECT
empleado_id, nombres, apellidos, fecha_ingreso, salario
FROM
empleados
ORDER BY
nombres, apellidos DESC;
-
SELECT
empleado_id, nombres, apellidos, fecha_ingreso, salario
FROM
empleados
ORDER BY
salario
DESC;
-
SELECT
empleado_id, nombres, apellidos, fecha_ingreso, salario
FROM
empleados
ORDER BY
fecha_ingreso
ASC;
-
SELECT
salario
FROM
empleados
ORDER BY
salario
DESC;
-
SELECT DISTINCT
salario
FROM
empleados
ORDER BY
salario
DESC;
-
SELECT
trabajo_id, salario
FROM
empleados
ORDER BY
trabajo_id, salario
DESC;
-
SELECT DISTINCT
numero_telefono
FROM
empleados
ORDER BY
numero_telefono;
-
SELECT
empleado_id, nombres, apellidos
FROM
empleados
ORDER BY
nombres;
-
SELECT
empleado_id, nombres, apellidos
FROM
empleados
ORDER BY
nombres
LIMIT 5;
-
SELECT
empleado_id, nombres, apellidos
FROM
empleados
ORDER BY
nombres
LIMIT 5 OFFSET 3;
-
SELECT
empleado_id, nombres, apellidos
FROM
empleados
ORDER BY
nombres
LIMIT 5 OFFSET 3;
-
SELECT
empleado_id, nombres, apellidos, salario
FROM
empleados
ORDER BY
salario
DESC LIMIT 5;
-
SELECT
empleado_id, nombres, apellidos, salario
FROM
empleados
ORDER BY
salario
DESC
LIMIT 1
OFFSET 1;
-
SELECT DISTINCT
salario
FROM
empleados
ORDER BY
salario
DESC
LIMIT 1
OFFSET 1;
-
SELECT
empleado_id, nombres, apellidos, salario
FROM
empleados
WHERE
salario = 17000;
-
SELECT
empleado_id, nombres, apellidos, salario
FROM
empleados
WHERE
salario = ( SELECT DISTINCT
salario
FROM
empleados
ORDER BY
salario
DESC
LIMIT 1
OFFSET 1
);
-
SELECT
empleado_id, nombres, apellidos, salario
FROM
empleados
ORDER BY
salario
DESC
OFFSET 5
ROWS FETCH NEXT 5 ROWS ONLY;
-
SELECT empleado_id,
nombres,
apellidos,
salario
FROM empleados
WHERE salario > 14000
ORDER BY salario DESC;
-
SELECT
empleado_id, nombres, apellidos, departamento_id
FROM
empleados
WHERE
departamento_id = 5
ORDER BY
nombres;
-
SELECT
empleado_id, nombres, apellidos
FROM
empleados
WHERE
apellidos = 'Chen';
-
SELECT
empleado_id, nombres, apellidos, fecha_ingreso
FROM
empleados
WHERE
fecha_ingreso >= '1999-01-01'
ORDER BY
-
SELECT
empleado_id, nombres, apellidos, fecha_ingreso
FROM
empleados
WHERE YEAR
(fecha_ingreso) = 1999
ORDER BY
fecha_ingreso
DESC;
-
SELECT
empleado_id, nombres, apellidos, departamento_id
FROM
empleados
WHERE
departamento_id <> 8 AND departamento_id <> 10
ORDER BY
nombres, apellidos;
-
SELECT
nombres, apellidos, salario
FROM
empleados
WHERE
salario > 5000 AND salario < 7000
ORDER BY
salario;
-
SELECT
nombres, apellidos, salario
FROM
empleados
WHERE
salario = 7000 OR salario = 8000
ORDER BY
salario;
-
SELECT
e.nombres,
e.apellidos,
j.trabajo_nombre,
d.departamento_nombre
FROM
empleados e
INNER JOIN
departamentos d ON d.departamento_id = e.departamento_id
INNER JOIN
trabajos j ON j.trabajo_id = e.trabajo_id
WHERE
e.departamento_id IN (1, 2, 3);
-
SELECT
r.region_nombre,
c.pais_nombre,
l.direccion,
l.ciudad
FROM
regiones r
LEFT JOIN
paises c ON c.region_id = r.region_id
LEFT JOIN
ubicaciones l ON l.pais_id = c.pais_id
WHERE
c.pais_id IN ('US', 'UK', 'CN');
-
SELECT
e.nombres || ' ' || e.apellidos AS empleado,
m.nombres || ' ' || m.apellidos AS gerencia_id
FROM
empleados e
LEFT JOIN
empleados m ON m.empleado_id = e.gerencia_id
ORDER BY
gerencia_id;
-
SELECT
departamento_id,
COUNT(empleado_id) AS headcount
FROM
empleados
GROUP BY
departamento_id;
-
SELECT
e.departamento_id,
d.departamento_nombre,
e.empleado_id,
j.trabajo_nombre,
COUNT(e.empleado_id) AS employee_count
FROM
empleados e
INNER JOIN
departamentos d ON d.departamento_id = e.departamento_id
INNER JOIN
trabajos j ON j.trabajo_id = e.trabajo_id
GROUP BY
e.departamento_id,
d.departamento_nombre,
e.empleado_id,
j.trabajo_nombre;
-
SELECT
m.empleado_id AS gerencia_id,
m.nombres,
m.apellidos,
COUNT(e.empleado_id) AS direct_reports
FROM
empleados e
INNER JOIN
empleados m
ON
m.empleado_id = e.gerencia_id
GROUP BY
m.empleado_id,
m.nombres,
m.apellidos
HAVING
COUNT(e.empleado_id) >= 5;
-
SELECT
nombres, apellidos, salario
FROM
empleados
WHERE
salario = ANY(SELECT
AVG(salario)
FROM
empleados
GROUP BY
departamento_id)
ORDER BY nombres, apellidos, salario;
-
SELECT
empleado_id, nombrea, apellidos
FROM
empleados
WHERE EXISTS(SELECT NULL) ORDER BY
nombres , apellidos;
-
SELECT
nombres, apellidos
FROM
empleados
UNION SELECT
nombres, apellidos
FROM
dependientes
ORDER BY
apellidos;
-
SELECT
empleado_id
FROM
empleados MINUS
SELECT
empleado_id
FROM
dependientes
ORDER BY
empleado_id;
-
INSERT INTO
dependientes
(nombres, apellidos, vinculo, empleado_id)
VALUE
('Dustin',
'Johnson',
'Child',
178
);
-
SELECT
empleado_id, nombres, apellidos
FROM
empleados
WHERE
empleado_id = 192;
-
DELETE FROM
empleados
WHERE
empleado_id = 192;
-
CUESTIONES EN LA ENTREGA
1. Portada
2. Introducción
3. Índice
4. Desarrollo (incluir las salidas de las sentencias (imagen) y su respectiva descripción)
5. Conclusiones