Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad Abierta y a Distancia de México División de Ciencias Exactas, Ingeniería y Tecnología Desarrollo de software Semestre: 4 Asignatura: Administración de bases de datos Unidad de aprendizaje: 2 Actividad: 2 Ciudad de México, Octubre del 2022 Diseño: DL-CPL ÍNDICE INTRODUCCIÓN 3 INSTRUCCIONES 3 DADB_Actividades_A2.PDF 4 INDICACIONES 5 DESARROLLO DE LA ACTIVIDAD 6 CONCLUSIONES 15 REFERENCIAS BIBLIOGRÁFICAS 15 INTRODUCCIÓN El Lenguaje de Manipulación de Datos (Data Manipulation Language) es un lenguaje de programación para los sistemas gestores de bases de datos que permite a los usuarios llevar a cabo tareas de consulta o modificación de los datos contenidos en las Bases de Datos. El objetivo de esta actividad es el emplear sentencias de DML de SQL en línea de comando, que nos permitan manipular los campos y registros, con base en la ejecución de las indicaciones mencionadas mas adelante. INSTRUCCIONES 1. Redacta la introducción sobre el uso de los comandos DML y su importancia en el proceso de gestión de bases de datos. 2. Diseña las sentencias DML que te permitan realizar las acciones que se indican en el documento siguiente: DADB_Actividades_A2.PDF 3. Realiza capturas de pantalla de las acciones que vas realizando, de acuerdo con los criterios indicados. 4. Redacta la conclusión, sobre lo aprendido en esta actividad. 5. Carga tu archivo en la sección correspondiente. DADB_Actividades_A2.PDF EMPLEADO Clave_emp Nombre Ap_Pat Ap_Mat Fecha_nacimiento Dirección Sexo Salario Clave_supervisor Clave_departamento 12345 Juan Perez Perez 01/02/1961 4 Norte #1201 M 5000 23456 3 23456 Pablo Suarez Gonzalez 09/09/1959 20 poniente # 1320 M 4800 33445 3 33445 Humberto Tapia Mora 24/12/1963 2 sur # 39 M 3900 Null 1 99887 Maria Zuñiga Acolco 13/05/1969 10 oriente # 1100 F 6300 33445 2 88665 Pedro Garcia Ariza 25/07/1960 18 norte #230 M 5200 99887 1 DEPARTAMENTO NUM_DEPARTAMENTO NOMBRE ID_JEFE FECHA_INGRESO_JFI 1 CONTABILIDAD 23456 19/06/2015 2 MANTENIMIENTO 33445 16/10/2012 3 RECURSOS HUMANOS 99887 01/04/2017 LOCALIZACION ID NUM_DEP LOCALIZACION_DEPA 1 1 NAVE A 2 2 NAVE B 3 3 NAVE B INDICACIONES 1. Crea las tablas listadas en la parte de arriba. 2. Genera las llaves primarias y foráneas que consideres necesarias para implementar las restricciones correspondientes 3. De acuerdo con los valores de los campos determina cuales de estos deben ser nulos y cuáles no deben ser nulos, asegúrate que en las estructuras de las tablas se implementen 4. Genera las instrucciones necesarias para realizar la inserción de los datos 5. Realiza las siguientes actualizaciones en las tablas: a. Actualiza la nave del departamento 3 para que sea la Nave C b. Actualiza la fecha de ingreso del supervisor 33445 por la fecha de 19 de septiembre de 2012 c. Incrementa $1000 el salario de los empleados del departamento 3 6. Genera las sentencias SQL para borrar los siguientes archivos: a. Elimina los empleados del departamento de Recursos Humanos b. Elimina el empleado que no tiene supervisor c. Elimina el departamento que pertenece a la Nave A Nota: Solo genera las instrucciones, pero no la ejecutes en el servidor, de tal forma que para las consultas se encuentren todos los datos originales 7. Realiza las siguientes consultas: a. Mostrar los nombres y apellidos de los empleados únicamente, concatena el resultado y muestra la columna como Nombre_Completo b. Muestra a lo empleados de sexo femenino c. Mostrar la clave del empleado, nombre, apellidos de los empleados que trabajan en el departamento de Mantenimiento d. Muestra las claves de los supervisores desde la tabla empleado(asegúrate que los valores no se muestren repetidos) e. Muestra la clave del empleado, apellidos y el nombre del departamento al que pertenece cada uno de ellos f. Muestra el nombre y apellidos de cada jefe de departamento DESARROLLO DE LA ACTIVIDAD 1. Creamos las tablas como están en el ejemplo: Página 2 de 2 CREATE TABLE `empleado` ( `Clave_emp` int(6) NOT NULL, `Nombre` varchar(25) NOT NULL, `Ap_Pat` varchar(25) NOT NULL, `Ap_Mat` varchar(25) NOT NULL, `Fecha_nacimiento` date NOT NULL, `Direccion` varchar(55) NOT NULL, `Sexo` varchar(2) NOT NULL, `Salario` int(10) NOT NULL, `Clave_supervisor` int(6) DEFAULT NULL, `Clave_departamento` int(2) NOT NULL ); CREATE TABLE `departamento` ( `NUM_DEPARTAMENTO` int(2) NOT NULL, `NOMBRE` varchar(25) NOT NULL, `ID_JEFE` int(6) NOT NULL, `FECHA_INGRESO_JFI` date NOT NULL ); CREATE TABLE `localizacion` ( `ID` int(2) NOT NULL, `NUM_DEP` int(2) NOT NULL, `LOCALIZACION_DEPA` varchar(25) NOT NULL ); 2. Generamos las llaves primarias y foráneas. ALTER TABLE `empleado` ADD PRIMARY KEY (`Clave_emp`); ALTER TABLE `departamento` ADD PRIMARY KEY (`NUM_DEPARTAMENTO`), ADD KEY `FK_ID_JEFE` (`ID_JEFE`); ALTER TABLE `localizacion` ADD PRIMARY KEY (`ID`), ADD KEY `FK_NUM_DEP` (`NUM_DEP`); ALTER TABLE `departamento` ADD CONSTRAINT `FK_ID_JEFE` FOREIGN KEY (`ID_JEFE`) REFERENCES `empleado` (`Clave_emp`); COMMIT; ALTER TABLE `localizacion` ADD CONSTRAINT `FK_NUM_DEP` FOREIGN KEY (`NUM_DEP`) REFERENCES `departamento` (`NUM_DEPARTAMENTO`); COMMIT; 3. Con base en el ejemplo podría decir que el único valor que podrían ser nulo seria: Clave_Supervisor en la tabla de empleados. 4. Para insertar los valores que están en la tabla INSERT INTO `empleado` (`Clave_emp`, `Nombre`, `Ap_Pat`, `Ap_Mat`, `Fecha_nacimiento`, `Direccion`, `Sexo`, `Salario`, `Clave_supervisor`, `Clave_departamento`) VALUES (12345, 'Juan', 'Perez', 'Perez', '1961-02-01', '4 Norte #1201', 'M', 5000, 23456, 3), (23456, 'Pablo', 'Suarez', 'Gonzalez', '1959-09-09', '20 poniente # 1320', 'M', 4800, 33445, 3), (33445, 'Humberto', 'Tapia', 'Mora', '1963-12-24', '2 sur # 39', 'M', 3900, NULL, 1), (88665, 'Pedro', 'Garcia', 'Ariza', '1960-07-25', '18 norte #230', 'M', 5200, 99887, 1), (99887, 'Maria', 'Zuñiga', 'Acolco', '1969-05-13', '10 oriente # 1100', 'F', 6300, 33445, 2); INSERT INTO `departamento` (`NUM_DEPARTAMENTO`, `NOMBRE`, `ID_JEFE`, `FECHA_INGRESO_JFI`) VALUES (1, 'CONTABILIDAD', 23456, '2015-06-19'), (2, 'MANTENIMIENTO', 33445, '2012-10-16'), (3, 'RECURSOS HUMANOS', 99887, '2017-04-01'); INSERT INTO `localizacion` (`ID`, `NUM_DEP`, `LOCALIZACION_DEPA`) VALUES (1, 1, 'NAVE A'), (2, 2, 'NAVE B'), (3, 3, 'NAVE B'); 8 5. Realizando actualizaciones a nuestra tabla a. Actualiza la nave del departamento 3 para que sea la Nave C UPDATE `localizacion` SET `LOCALIZACION_DEPA` = 'NAVE C' WHERE `localizacion`.`ID` = 3; b. Actualiza la fecha de ingreso del supervisor 33445 por la fecha de 19 de septiembre de 2012 UPDATE `departamento` SET `FECHA_INGRESO_JFI` = '2012-09-19' WHERE `departamento`.`NUM_DEPARTAMENTO` = 2; c. Incrementa $1000 el salario de los empleados del departamento 3 SELECT * FROM `empleado` WHERE `Clave_departamento` = 3; UPDATE `empleado` SET `Salario` = '6000' WHERE `empleado`.`Clave_emp` = 12345; UPDATE `empleado` SET `Salario` = '5800' WHERE `empleado`.`Clave_emp` = 23456; 6. Genera las sentencias SQL para borrar los siguientes archivos: a. Elimina los empleados del departamento de Recursos Humanos DELETE FROM `empleado` WHERE `empleado`.``Clave_departamento` = 3; b. Elimina el empleado que no tiene supervisor DELETE FROM `empleado` WHERE `empleado`.``Clave_supervisor` = NULL; c. Elimina el departamento que pertenece a la Nave A DELETE FROM `u2a2`.`departamento` WHERE `NUM_DEPARTAMENTO` = 1; 7. Realiza las siguientes consultas: a. Mostrar los nombres y apellidos de los empleados únicamente, concatena el resultado y muestra la columna como Nombre_Completo SELECT CONCAT(Nombre,' ',Ap_Pat,' ',Ap_Mat) AS Nombre_Completo FROM empleado; b. Muestra a lo empleados de sexo femenino. SELECT * FROM `empleado` WHERE `Sexo` = 'F'; c. Mostrar la clave del empleado, nombre, apellidos de los empleados que trabajan en el departamento de MantenimientoSELECT `Clave_emp`, `Nombre`, `Ap_Pat`, `Ap_Mat` FROM `empleado` WHERE `Clave_departamento`= 2; d. Muestra las claves de los supervisores desde la tabla empleado (asegúrate que los valores no se muestren repetidos). SELECT DISTINCTROW Clave_supervisor FROM empleado; e. Muestra la clave del empleado, apellidos y el nombre del departamento al que pertenece cada uno de ellos SELECT DISTINCTROW Clave_supervisor, Clave_emp, Nombre, Ap_Pat, Ap_Mat FROM empleado; f. Muestra el nombre y apellidos de cada jefe de departamento SELECT Nombre, Ap_Pat, Ap_Mat FROM `u2a2`.`empleado` WHERE `Clave_emp`; CONCLUSIONES Una vez concluidas todas indicaciones para esta actividad, puedo concluir que es muy importante el manejo de Data Manipulation Language, ya que es fundamental para la ejecución de cualquier tarea (Consulta, Edicion, Insertar, Eliminar) en un sistema de base de datos, es por ello que entiendo que es importante saber trabajar desde el entorno mas “puro” (consola), aunque en la vida real existe software y aplicaciones que nos facilitan el trabajo con la creación o manejo de BD, Tablas y/o columnas. Particularmente en este caso aprendí que hay que tener cuidado con el formato de fecha al trabajar con la variable DATE, ya que puede ocasionar errores u omisiones al ingresar la información. Otro detalle que observe es que debí haber relacionado era Clave_departamento con Num_departamento. REFERENCIAS BIBLIOGRÁFICAS · MySQL CONCAT() Function. (s. f.). Recuperado 31 de octubre de 2022, de https://www.w3schools.com/sql/func_mysql_concat.asp · MySQL :: MySQL 5.7 Reference Manual :: 2.11.12 Rebuilding or Repairing Tables or Indexes. (s. f.). Recuperado 30 de octubre de 2022, de https://dev.mysql.com/doc/refman/5.7/en/rebuilding-tables.html · MySQL :: MySQL 8.0 Reference Manual :: 13.1.9 ALTER TABLE Statement. (s. f.). Recuperado 30 de octubre de 2022, de https://dev.mysql.com/doc/refman/8.0/en/alter-table.htm · MySQL :: MySQL 8.0 Reference Manual :: 13.1.36 RENAME TABLE Statement. (s. f.). Recuperado 30 de octubre de 2022, de https://dev.mysql.com/doc/refman/8.0/en/rename-table.html · MySQL :: MySQL 8.0 Reference Manual :: 13.2.10 SELECT Statement. (s. f.). Recuperado 31 de octubre de 2022, de https://dev.mysql.com/doc/refman/8.0/en/select.html · PHP MySQL Create Table. (s. f.). Recuperado 30 de octubre de 2022, de https://www.w3schools.com/php/php_mysql_create_table.asp · SQL INSERT INTO Statement. (s. f.). Recuperado 31 de octubre de 2022, de https://www.w3schools.com/sql/sql_insert.asp
Compartir