I
Informe Actividad de Aprendizaje No. 4
Marzo de 2018.
Unipanamericana Fundación Universitaria. Teoría de Base de Datos
II Tabla de Contenido
Pág.
Graficas .................................................................................................................................... III Introducción ............................................................................................................................. IV Objetivos ................................................................................................................................... V Informe Actividad No. 04 .......................................................................................................... 1 La sentencia ...................................................... ..................................................... ..................................................................... ................ 1 Sintaxis general: ................................................ ..................................................... ..................................................................... ................ 1 Lista de referencias .................................................................................................................. 16
III Graficas
Figura 1. Modelo relacional............................................... ................................................... 2 Figura 2. Codificación tabla empleados............................................... ................................. 4 Figura 3. Codificacion tabla sucursales............................................... ................................. 5 Figura 4. Codificacion tabla servicios.................................................. ................................. 5 Figura 5. Codificacion tabla serv_empleados............................................... ........................ 6 Figura 6. Codificacion tabla afiliados.................................................. ................................. 6 Figura 7. Codificacion tabla serv_afiliados.................................................. ........................ 7 Figura 8. Columna nueva a tabla serv_afiliados................................................................... 7 Figura 9. Codificacion tabla afiliados.................................................. ................................. 8 Figura 10. Insercion de registros en tabla empleados. ......................................................... 9 Figura 11. Insercion de registros en tabla sucursales.................................................... ..... 10 Figura 12. Insercion de registros en tabla servicios. .......................................................... 11 Figura 13. Insercion de registros en tabla serv_empleados................................................ 11 Figura 14. Insercion de registros en tabla afiliados............................................................ 12 Figura 15. Insercion de registros en tabla serv_afiliados.............................................. ..... 13 Figura 16. Insercion de columna ocupacion. ...................................................................... 13 Figura 17. Insercion de datos en columna ocupacion.................................................... ..... 14
IV Introducción
Al crear una base de datos no solo es importante su invención como tal, pues durante el transcurso de su creación o inclusive durante el tiempo de su uso surgirán problemas en el contenido de los datos y/o sus registros, es justo allí donde se hace necesario el uso de los DML, que por sus siglas en español indica lenguaje de modificación de datos, ya que de esta forma es posible modificar, seleccionar o eliminar toda aquella información o registro usado o por usar. Durante el desarrollo de la actividad se hicieron diversos procesos basados en un diagrama dado de un modelo relacional, procesos como codificar datos dados de una tabla a la consola del software en esta caso específicamente de MySQL, y en primera medida se realiza un proceso DDL que son las sentencias usadas para crear y/o modificar la estructura de las tablas, y en un segundo lugar el uso de sentencias DML. La consola de MySQL es una plataforma que por sus caracteristicas se debe de ser muy preciso en las sentencias a ejecutar y en muchos se falló, más que todo cuando se agrega una nueva columna y se le quieren ingresar registros con la sentencia UPDATE, porque al ejecutar el comando daba error y siempre fue debido a un pequeño simbolo como una comilla o las comillas simples.
V Objetivos
1.
Aprender la importancia de los DML en una base de datos.
2.
Saber dar un buen uso a los DML para que de esta forma sea mas eficiente y rendidor el uso de la consola MySQL.
3.
Saber interpretar para su buen uso la sintaxis general de una sentencia.
1 Informe Actividad No. 04
1. La sentencia UPDATE es con la cual se actualiza o se modifica varios datos de varios registros, ahora bien esta sentencia se complemente del comando WHERE cuando se quiere modificar solo un dato de cierto registro, porque si no se especifica con WHERE el sistema lo que hará es modificar toda la columna especificada con SET. La sentencia DELETE es usada para eliminar registros de una t abla, pero al igual que UPDATE , si lo que deseamos es eliminar un solo registro simplemente se le indica que registro usando el comando WHERE, por ejemplo: DELETE FROM usuarios WHERE nombre = ‘Eduardo’; es decir, borre de la tabla usuarios el o los registros con nombre Eduardo. P or ultimo la sentencia SELECT es necesaria cuando se desea ver el contenido completo de una tabla, es decir cuando lo que se quiere es ver cada uno de los registros ingresados por tabla, aunque es de aclarar que también se puede especificar la selección de registros en una tabla separándolos por comas para su visualización. 2. Sintaxis general: a. UPDATE nombre_tabla SET nombre_columna = ‘nuevo valor’ WHERE = ‘condición’;
Explicando lo anterior es claro cómo hay que dar la orden desde lo más general a lo más particular, es decir primero especificamos un nombre de tabla y con SET la columna deseada para modificar por su nuevo valor, de allí que se haga la igualdad y se coloque en comillas simples, ahora si lo que se desea es cambiar un solo dato en específico a lo anterior le anexamos WHERE que es la utilizada para dar un registro en específico y que de esta forma no se cambie toda la columna.
2 b. DELETE FROM ‘nombre_tabla’ WHERE ‘condicion’;
En la anterior setencia entrando en detalle es el borrado de registro de una tabla especificada, ahora bien si el caso es de borrar solo un registro se le anexa WHERE y el nombre del registro el cual se quiere eliminar. c. SELECT ‘nombre_columna’ FROM ‘nombre_tabla’;
Una de las setencias mas usadas puesto que sirve para visualizar los registros de una tabla por lo que básicamente se ingresa el nombre de la columna y la tabla en la que se ubica dicha columna, ahora si lo que se quiere es ver todas las columnas de una tabla basta con colocar ‘*’ en lugar de ‘nombre_columna’. 3. se codifica el modelo relacional quedando de la siguiente forma para poder manejarlos en
la consola de MySQL.
F ig ura 1. Modelo relacional.
4 A continuación codificamos la figura 1 para que sea manejable en la consola de MySQL: -
CREATE DATABASE empresa_asesorias; USE empresa_asesorias;
-
CREATE TABLE empleados (id_empleado INT NOT NULL, nom_empleado VARCHAR(30) NOT NULL, apelli_empleado VARCHAR(30) NOT NULL, tel_empleado VARCHAR(15) NOT NULL, dir_empleado VARCHAR(60) NOT NULL, PRIMARY KEY (id_empleado));
F igura 2. Codificación tabla empleados. -
CREATE TABLE sucursales (id_acoset INT NOT NULL, nom_empresa VARCHAR(15) NOT NULL, tel_empresa VARCHAR(15) NOT NULL, dir_empresa VARCHAR(60) NOT NULL, PRIMARY KEY (id_acoset));
5
F igura 3. Codificacion tabla sucursales.
-
CREATE TABLE servicios (id_servicio INT NOT NULL, id_acoset INT NOT NULL, nom_servicio VARCHAR(40) NOT NULL, Valor_servicio INT NOT NULL, PRIMARY KEY (id_servicio), FOREIGN KEY (id_acoset) references sucursales (id_acoset));
F igura 4. Codificacion tabla servicios.
-
CREATE TABLE serv_empleados (id_servicio INT NOT NULL, id_empleado INT NOT NULL, FOREIGN KEY (id_servicio) references servicios (id_servicio), FOREIGN KEY (id_empleado) references empleados (id_empleado));
6
F ig ura 5. Codificacion tabla serv_empleados
-
CREATE TABLE afiliados (id_afiliado INT NOT NULL, id_acoset INT NOT NULL, nom_afiliado VARCHAR(20) NOT NULL, estado_afiliado VARCHAR(15) NOT NULL, tel_afiliado VARCHAR(15) NOT NULL, dir_afiliado VARCHAR(60) NOT NULL, PRIMARY KEY (id_afiliado), FOREIGN KEY (id_acoset) references sucursales (id_acoset));
F igura 6. Codificacion tabla afiliados.
7 -
CREATE TABLE serv_afiliados ( id_servicio INT NOT NULL, id_afiliado INT NOT NULL, FOREIGN KEY (id_servicio) references servicios (id_servicio), FOREIGN KEY (id_afiliado) references afiliados (id_afiliado));
F igura 7. Codificacion tabla serv_afiliados.
En este punto y ya habiendo codificado todas las tablas, la actividad dice que: “En la tabla serv_afiliados agregar un campo llamado “fecha_servicio” ( usando la sentencia add column) e igualmente agregar otra columna en afiliados para la fecha de registro llamada “fecha_registro”, procedemos a usar el commando: -
ALTER TABLE serv_afiliados ADD fecha_servicio DATETIME NOT NULL;
F igura 8. Columna nueva a tabla serv_afiliados.
-
ALTER TABLE afiliados ADD fecha_registro DATETIME NOT NULL;
8
F igura 9. Codificacion tabla afiliados.
Lo siguiente es agregar los 10 (diez) registros por cada tab la mediante el comando INSERT INTO. -
Registros para tabla: Empleados INSERT INTO empleados ( id_empleado, nom_empleado, apelli_empleado, tel_empleado, dir_empleado) values ( 6389, ‘Roberto’, ‘Gomez’, 3007158479, ‘cll 7b No 6A04’), ( 1560, ‘Carlos’, ‘Munoz’, 3184705554, ‘Cra 13 No 7-10’), ( 2380, ‘Miguel’, ‘Ospina’, 3147895420, ‘Cra 9 No 15B22’), (3790, ‘Alberto’, ‘Jimenez’, 3216504870, ‘Cll 8a No 6A05’), ( 4512, ‘Juan’, ‘De los Rios’, 3504203789, ‘Cll 2 No 3B06’), ( 5826, ‘Gilberto’, ‘Cardenas’, 3198705024, ‘Cra 5 No 6B08’), ( 6879, ‘Mauricio’, ‘Cardona’, 3186889879, ‘Cra 25 No 52-15’), ( 7280, ‘Marina’, ‘Henao’, 3113591214, ‘cll 8b No 6a18’), ( 8514, ‘Angie’, ‘Vivar ’, 3005814690, ‘Cra 7b No 10A03’), ( 9538, ‘Patricia’, ‘Velandia’, 3176723611, ‘cll 15 No 14D04’);
9
F igura 10. Insercion de registros en tabla empleados.
-
Registros para tabla: sucursales INSERT INTO sucursales (id_acoset, nom_empresa, tel_empresa, dir_empresa) values (3598, ‘Asesoría j&y’, 3004589763, ‘cll 10 No 13-14’), (1010, 'Juridicos.com’, 3116701212, ‘Cra 9 No 10-05’), (4545, ‘Consulting SS reyes’, 3507907867, ‘Cll 9 No 4009’), (8087, ‘Gabinete Gefesa’, 3117988009, ‘Cra 12 No 11-11’), (1213, ‘Ospina&Barrera consultores’, 3222002015, ‘Cll 6 No 91-09’), (1124, 'GESPAM gestorias’, 3167890980, ‘Cll 8 No 13-08’), (2235, ‘Asesoría RDP’, 3006789878, ‘Cra 26 No 67-08’), (4345, ‘Bufete Asesores SA’, 3509087670, ‘Cll 6 No 20-21’), (5676, ‘Gestoria Atinua’, 3114840920, ‘Cra 4 No 31-07’), (6771, ‘Eterie Asesorias’, 3108909876, ‘Cll 6 No 54-09’);
10
F ig ura 11. Insercion de registros en tabla sucursales.
-
Registros para tabla: servicios INSERT INTO servicios (id_servicio, id_acoset, no m_servicio, valor_servicio) VALUES (4565, 3598,‘asesoría financiera’, 1400000), (3945, 1010, ‘acompañamiento gerencial’, 1900000), (5678, 4545, ‘asesoría tecnológica', 1100000), (9098, 8087, ‘asesoría contable’, 1700000), (5078, 1213, ‘asesoría gestión de calidad’, 1600000), (5667, 1124, ‘asesoría salud ocupacional’, 1300000), (4567, 2235, ‘acompañamiento jurídico’, 1100000), (4996, 4345, ‘asesoría ventas’, 1100000), (6478, 5676, ‘acompañamiento inventarios’, 1800000), (3333, 6771, ‘acompañamiento formación’, 1500000);
11
F igura 12. Insercion de registros en tabla servicios.
-
Los registros de la tabla serv_empleados son tomados d e los registros ya creados de sus respectivas tablas: id_servicios de la tabla servicios e id_empleados de la tabla empleados. INSERT INTO serv_empleados (id_servicio, id_empleado) values (3333,1560), (3945,2380), (4565,3790), (4567,4512), (4996,5826), (5078,6389), (5667,6879), (5678,7280), (6478,8514), (9098,9538);
F igura 13. Insercion de registros en tabla serv_empleados.
-
Registros de la tabla Afiliados INSERT INTO afiliados (id_afiliado, id_acoset, nom_afiliado, estado_afiliado, tel_afiliado, dir_afiliado, fecha_registro) values (12568, 1010, ‘Judiciales SA’, ‘Activo’, 3054879025, ‘cll 46 No 10-14’, ‘2010-03-31’), (12569, 1124, 'Servientrega SAS’, ‘En
12 trámite’, 3124897510, ‘Cra 20 No 16-98’, ‘2009-04-06’), (12570, 1213, ‘Compuya LTDA’, ‘inactivo’, 3228975203, ‘Cll 5 No 16-09’, ‘2010-05-08’), (12571, 2235, ‘Nestle SA’, ‘activo’, 3126578909, ‘Cll 22 No 33-11’, ‘2008-02-05’), (12572, 3598, ‘Teleterformes SA’, ‘en tramite’, 2156754344, ‘Cll 6 No 81-19’, ‘2012-06-07’), (12573, 4345, 'Salud LTDA’, ‘activo’, 3198798876, ‘Cll 6 No 15-05’, ‘2011-09-09’), (12574, 4545, ‘Davivienda’, ‘inactivo’, 3124567898, ‘Cra 25 No 69-04’, ‘2009-05-26’), (12575, 5676, ‘Mapfre SA’, ‘activo’, 3056789088, ‘Cll 3 No 21-12’, ‘2010-10-25’), (12576, 6771, ‘Inventarios SAS’, ‘activo’, 3124567890, ‘Cra 6 No 11-01’, ‘2010-12-16’), (12577, 8087, ‘Colsubsidio’, ‘en tramite’, 3234567890, ‘Cll 90 No 64-18’, ‘2011-08-08’);
F ig ura 14. Insercion de registros en tabla afiliados.
-
Los registros de la tabla serv_afiliados son tomados de los registros ya creados de sus respectivas tablas: id_servicio de la tabla servicios e id_afiliado de la tabla afiliados.
13 INSERT INTO serv_afiliados (id_servicio, id_afiliado, fecha_servicio) values (3333,12568, ‘2011-10-25’), (3945,12569, ‘2009-07-25’), (4565,12570, ‘2012-03-25’), (4567,12571, ‘2008-11-25’), (4996,12572, ‘2014-12-18’), (5078,12573, ‘2009-11-22’), (5667,12574, ‘2010-07-30’), (5678,12575, ‘2012-10-25’), (6478,12576, ‘2015-08-24’), (9098,12577, ‘2016-04-25’);
F igura 15. Insercion de registros en tabla serv_afiliados.
El enunciado de la actividad dice que se quiere conocer los servicios prestados por cada empleado. Entonces para ello se agrega una columna a la tabla empleados, con la siguiente sentencia: ALTER TABLE empleados ADD ocupacion VARCHAR(40) NOT NULL;
F ig ura 16. Insercion de columna ocupacion.
14 Ahora se procede a ingresar los registros para el campo Ocupacion usando la sentencia UPDATE: UPDATE empleados SET ocupacion = 'empresarial' WHERE nom_empleado = 'Miguel'; UPDATE empleados SET ocupacion = 'financiero' WHERE nom_empleado = 'Alberto'; UPDATE empleados SET ocupacion = 'financiero' WHERE nom_empleado = 'Juan'; UPDATE empleados SET ocupacion = 'empresarial' WHERE nom_empleado = 'Gilberto'; UPDATE empleados SET ocupacion = 'Juridico' WHERE nom_empleado = 'Roberto'; UPDATE empleados SET ocupacion = 'financiero' WHERE nom_empleado = 'Mauricio'; UPDATE empleados SET ocupacion = 'empresarial' WHERE nom_empleado = 'Marina'; UPDATE empleados SET ocupacion = 'juridico' WHERE nom_empleado = 'Angie'; UPDATE empleados SET ocupacion = 'financiero' WHERE nom_empleado = 'Patricia';
F ig ura 17. Insercion de datos en columna ocupacion.
15 Consultas con sentencia SELECT: SELECT *FROM empleados where ocupacion = 'financiero';
SELECT * FROM Afiliados WHERE nom_afiliado like ‘M%’
SELECT * FROM sucursales WHERE nom_empresa NOT LIKE ‘%t%’
16 Conclusiones
Durante el desarrollo de esta actividad se obtuvieron grandes lecciones de aprendizaje por lo que como conclusiones se llega a las siguientes: 1. Una sintaxis general bien interpretada será de gran valor pues al usarla con la base de datos realizada reduce al mínimo el porcentaje de errores. 2. La gran importancia que tienen los DML ya que de esta forma se facilita modificar o manipular la información registrada, porque si no ex istiera se tendría que borrar y hacer una nueva base de datos. 3. El buen uso al momento de manipular y modificar una base de datos será productivo y ahorrador de tiempo al momento de realizarse un proyecto.
17 Lista de referencias
Barrena, Anner: MySQL select – realizar consultas a una base de datos. URL https://www.anerbarrena.com/mysql-select-consultas-base-datos-5426/. López Molina, Feliciano: llaves primarias y foráneas en base de datos. URL https://www.youtube.com/watch?v=5QPWjcqOu1I. Motato Trejos, Jose Alfredo: Material compartido del tutor. URL http://cursos.unipanamericana.edu.co/course/view.php?id=20803#section-4. SQL server ya: tutoriales SQL. URL http://www.tutorialesprogramacionya.com/sqlserverya/index.php?inicio=1.