Examen
Se brinda todo el Query completo del examen para la plaza de "Administrador de Aplicaciones"unknown
mysql
2 years ago
7.9 kB
6
Indexable
CREATE DATABASE TRANSACCIONAL;
USE TRANSACCIONAL;
CREATE TABLE TIPOUSUARIO (
TIPOUSUARIO INT(2) NOT NULL,
DESCRIPCION VARCHAR(50),
ESTADO INT(2),
PRIMARY KEY (TIPOUSUARIO)
);
CREATE TABLE USUARIOS (
IDUSUARIO INT(18) NOT NULL,
NOMBRE VARCHAR(50),
APELLIDOS VARCHAR(50),
FECHA DATE,
ESTADO INT(1),
TIPOUSUARIO INT(2),
PRIMARY KEY (IDUSUARIO)
);
INSERT INTO TIPOUSUARIO (TIPOUSUARIO, DESCRIPCION, ESTADO) VALUES (1, 'VENDEDOR', 1);
INSERT INTO TIPOUSUARIO (TIPOUSUARIO, DESCRIPCION, ESTADO) VALUES (2, 'CAJERO', 1);
INSERT INTO TIPOUSUARIO (TIPOUSUARIO, DESCRIPCION, ESTADO) VALUES (3, 'ADMINISTRADOR', 1);
INSERT INTO TIPOUSUARIO (TIPOUSUARIO, DESCRIPCION, ESTADO) VALUES (4, 'CONSULTA', 1);
INSERT INTO TIPOUSUARIO (TIPOUSUARIO, DESCRIPCION, ESTADO) VALUES (5, 'DIGITADOR', 1);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1001, 'JUAN', 'PEREZ', '2021-08-11', 1, 1);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1002, 'CARLOS', 'HERNANDEZ', '2021-08-01', 1, 1);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1003, 'ELMER', 'HOMERO', '2021-05-10', 1, 1);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1004, 'ESTEBAN', 'QUITO', '2021-04-01', 1, 2);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1005, 'ZOILA', 'QUIJADA', '2021-06-04', 1, 2);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1006, 'MARCELLO', 'VEGA', '2021-04-04', 1, 2);
/*Continuacion*/
-- Inserción de datos en la tabla USUARIOS
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1007, 'JESSICA', 'JIMENEZ', '2021-02-14', 1, 3);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1008, 'MARGARITA', 'CUERVO', '2021-01-15', 1, 3);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1009, 'RENE', 'ZELAYA', '2021-01-14', 1, 3);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1010, 'CARLOS', 'CHAVEZ', '2021-01-10', 2, 4);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1011, 'NILS', 'PENA', '2021-03-30', 1, 4);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1012, 'LUIS', 'AGUILAR', '2021-07-18', 2, 4);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1013, 'CARLOS', 'ARGUETA', '2021-05-01', 2, 5);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1014, 'JOSE', 'CAMPOS', '2021-04-04', 2, 5);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO) VALUES (1015, 'KARLA', 'VALLE', '2021-02-25', 2, 5);
-- Establecimiento de la restricción de clave foránea
ALTER TABLE USUARIOS ADD CONSTRAINT FK_USUARIOS_TIPOUSUARIO FOREIGN KEY (TIPOUSUARIO) REFERENCES TIPOUSUARIO(TIPOUSUARIO);
-- Primera Consulta
SELECT
u.IDUSUARIO,
CONCAT(u.NOMBRE, ' ', u.APELLIDOS) AS NOMBREUSUARIO, u.FECHA,
CONCAT(u.TIPOUSUARIO,' ',t.DESCRIPCION) AS TIPOUSUARIO,
u.ESTADO
FROM
USUARIOS u
JOIN
TIPOUSUARIO t
ON
u.TIPOUSUARIO = t.TIPOUSUARIO;
-- Segunda consulta
SELECT u.IDUSUARIO,CONCAT(u.NOMBRE, ' ', u.APELLIDOS) AS NOMBREUSUARIO, u.FECHA,
CONCAT(u.TIPOUSUARIO,' ' , t.DESCRIPCION) AS TIPOUSUARIO, u.ESTADO
FROM USUARIOS u
JOIN TIPOUSUARIO t
ON u.TIPOUSUARIO = t.TIPOUSUARIO
WHERE u.ESTADO = 2;
-- Tercera consulta
SELECT u.IDUSUARIO,CONCAT(u.NOMBRE, ' ', u.APELLIDOS) AS NOMBREUSUARIO, u.FECHA,
CONCAT(u.TIPOUSUARIO,' ' , t.DESCRIPCION) AS TIPOUSUARIO,
CASE
WHEN u.ESTADO = 1 THEN 'ACTIVO'
WHEN u.ESTADO = 2 THEN 'INACTIVO'
END AS ESTADO
FROM USUARIOS u
JOIN TIPOUSUARIO t
ON u.TIPOUSUARIO = t.TIPOUSUARIO;
-- Cuarta consulta
SELECT
u.IDUSUARIO,
CONCAT(u.NOMBRE, ' ', u.APELLIDOS) AS NOMBREUSUARIO,
u.FECHA,
CONCAT(u.TIPOUSUARIO, ' ', t.DESCRIPCION) AS TIPOUSUARIO,
CASE
WHEN u.ESTADO = 1 THEN 'ACTIVO'
WHEN u.ESTADO = 2 THEN 'INACTIVO'
END AS ESTADO
FROM
USUARIOS u
JOIN
TIPOUSUARIO t
ON
u.TIPOUSUARIO = t.TIPOUSUARIO
WHERE
YEAR(u.FECHA) = 2021 AND MONTH(u.FECHA) BETWEEN 1 AND 5;
-- Quinto ejercicio
SELECT t.DESCRIPCION AS TIPOUSUARIO, COUNT(t.DESCRIPCION) AS CANTIDAD
FROM USUARIOS u
JOIN TIPOUSUARIO t
ON u.TIPOUSUARIO = t.TIPOUSUARIO
GROUP BY t.DESCRIPCION
ORDER BY t.DESCRIPCION ASC;
-- Sexto ejercicio
-- Insertar usuario tipo VENDEDOR
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1016, 'CAROLINA', 'LOPEZ', '2021-10-30', 1, 1);
-- Insertar usuario tipo CAJERO
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1017, 'ARIEL', 'GALDAMEZ', '2021-10-30', 1, 2);
-- Insertar usuario tipo ADMINISTRADOR
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1018, 'XIOMARA', 'CARRANZA', '2021-10-30', 1, 3);
-- Insertar usuario tipo CONSULTA
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1019, 'ERICK', 'VARELA', '2021-10-30', 1, 4);
-- Insertar usuario tipo DIGITADOR
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1020, 'MIGUEL', 'LINARES', '2021-10-30', 1, 5);
SELECT * FROM USUARIOS;
-- Septimo ejercicio
-- Insertar nuevos tipos de usuarios
INSERT INTO TIPOUSUARIO (TIPOUSUARIO, DESCRIPCION, ESTADO)
VALUES (6, 'JEFE', 1);
INSERT INTO TIPOUSUARIO (TIPOUSUARIO, DESCRIPCION, ESTADO)
VALUES (7, 'BODEGA', 1);
SELECT * FROM USUARIOS;
-- Octavo ejercicio
SELECT DISTINCT ESTADO AS ID,
CASE
WHEN u.ESTADO = 1 THEN 'ACTIVO'
WHEN u.ESTADO = 2 THEN 'INACTIVO'
WHEN u.ESTADO = 3 THEN 'VACACION'
WHEN u.ESTADO = 4 THEN 'RETIRO'
WHEN u.ESTADO = 5 THEN 'MATERNIDAD'
END AS ESTADO
FROM USUARIOS u;
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1021, 'Usuario-21', 'Apellido-21', '2021-10-30', 3, 1);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1022, 'Usuario-22', 'Apellido-22', '2021-10-30', 4, 1);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1023, 'Usuario-23', 'Apellido-23', '2021-10-30', 5, 1);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1024, 'Usuario-24', 'Apellido-24', '2021-10-30', 5, 6);
INSERT INTO USUARIOS (IDUSUARIO, NOMBRE, APELLIDOS, FECHA, ESTADO, TIPOUSUARIO)
VALUES (1025, 'Usuario-24', 'Apellido-24', '2021-10-30', 5, 7);
----- Noveno ejercicio
ALTER TABLE USUARIOS
ADD CORREO VARCHAR(255),
ADD TELEFONO VARCHAR(20);
SELECT * FROM USUARIOS;
-- Actualizar el CORREO y TELEFONO para el usuario con IDUSUARIO 1023
UPDATE USUARIOS
SET CORREO = CONCAT(LOWER(REPLACE(NOMBRE, ' ', '_')), '_', LOWER(REPLACE(APELLIDOS, ' ', '_')), '@gmail.com'),
TELEFONO = CONCAT('(+503) ', SUBSTR(FLOOR(RAND() * 100000000), 1, 4), '-', SUBSTR(FLOOR(RAND() * 10000), 1, 4))
-- En esta apartado solo el ID cambio y hace toda la concatenacion de nombre y apellido para generar correo
WHERE IDUSUARIO = 1025;
-- Decimo ejercicio
DROP VIEW nombre_vista;
CREATE VIEW nombre_vista AS
SELECT
u.IDUSUARIO,
CONCAT(u.NOMBRE, ' ', u.APELLIDOS) AS NOMBREUSUARIO, u.FECHA,
CONCAT(u.TIPOUSUARIO,' ',t.DESCRIPCION) AS TIPOUSUARIO, u.CORREO, u.TELEFONO,
CASE
WHEN u.ESTADO = 1 THEN 'ACTIVO'
WHEN u.ESTADO = 2 THEN 'INACTIVO'
WHEN u.ESTADO = 3 THEN 'VACACION'
WHEN u.ESTADO = 4 THEN 'RETIRO'
WHEN u.ESTADO = 5 THEN 'MATERNIDAD'
END AS ESTADO
FROM
USUARIOS u
JOIN
TIPOUSUARIO t
ON
u.TIPOUSUARIO = t.TIPOUSUARIO;
select * from nombre_vista;
Editor is loading...