martes, 13 de noviembre de 2012

Ejercicio de Alter Table / Base de Datos

Autor: Benjamín Navarrete O.
Competencia: Trabajo en Equipo
Palabras Clave: Alter, MySQL, Base, Datos, Ejercicios.




Hola de nuevo ! hoy traemos una nueva entrada al repositorio sobre Base de datos. Para que tengan una breve reseña, Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad se pueden usar programas informáticos tales como MySQL, Oracle, Postgress entre otros, para Manipular estas bases de datos de tal manera que nosotros podamos consultar sobre alguna entrada en específico. Ej: el valor de un producto en una base de datos de un supermercado o el rut o dato de alguna persona que este en la base de datos de un hospital, etc.


En esta entrada mostraremos específicamente como se implementa el uso de Alter table, comando que consiste para modificar, renombrar o eliminar una tabla de una base de datos


y obviamente sin olvidar el trabajo en equipo que hubo en la actividad, a continuación les mostraremos el problema a desarrollar.



Descripción de la Actividad


El contexto del ejercicio es el siguiente:

    Este mes hubo evaluación de desempeño en una de las principales empresas de telefonía del país y se decidió poner a prueba al departamento informático ya que la información de las bases de datos no es totalmente clara.

Nuestro jefe preocupado por lo ocurrido nos dice.
Jefe- Es importante cambiar el modo en que hace guardamos la información actualmente y llegar a la optimización que nos permita ahorrar espacio y apresurar las búsquedas.
Por lo que pedimos la estructura del sistema de bases de datos y se nos entrega esto.

create table clientes_domesticos(
id int not null auto_increment,
nombre_completo text,
ciudad text,
email text,
direccion varchar(12),
telefono varchar(8),
pago_mensual int(10),
minutos_usados int(3),
minutos_plan int(8),
primary key(id)
);
Un registro de la tabla es de esta manera.





Ahora el ejercicio a hacer, en base a los datos que nos han entregado es : 
1.- Nombre completo no es una columna atómica, elimínela y agregue las que sean necesarias utilizando el tipo de dato correcto, no pierda la información ya almacenada de Nombre completo

2.- Agregue el campo pago anual que es el pago mensual por 12 meses.

Solución


Para hacer que nuestra tabla fuese más personalizada le cambiamos el nombre original que fue asignado anteriormente como “clientes_domesticos” por “ Clientes_Telefonica”.


Desarrollo del problema.



CREATE TABLE Clientes_Telefonica( //creación de la tabla id INT NOT NULL AUTO_INCREMENT, // se define la id como campo NO NULO, es decir, que no puede presentar filas sin ningún dato.

nombre_completo TEXT, // campos con su respectivo tipo de dato. Dato de tipo TEXT es extremadamente grande y no es eficiente usarlo en nombres ya que ocuparía mas memoria lo que seria innecesario.

ciudad TEXT,
email TEXT , 

direccion VARCHAR(12),// tipo varchar es una cadena donde se pueden ingresar datos como caracteres y tiene un rango de almacenamiento de 65532 bytes.
telefono VARCHAR(8),

pago_mensual INT(10), // tipo int es un dato de tipo entero el cual tiene un rango de [-8000000,8000000] aproximadamente.

minutos_usados INT(3),

minutos_plan INT(8),

PRIMARY KEY(id)//se define id como clave principal de la cual dependen todos los datos del registro. );

 INSERT INTO // es un comando que se utiliza para ingresar los datos en cada columna que se le asigne posteriormente.

Clientes_Telefonica(nombre_completo,ciudad,email,direccion,telefono,pago_mensual,minutos_usados,minutos_plan)VALUES("Felipe Alejandro Pardo Gomez","Temuco","fap@live.cl","las canteras #234","8728987","20000","30","40") Insertar en la tabla Clientes_Telefonica, con orden que se puede ver entre los ( ) luego se ingresar los respectivos valores deseados.

INSERT INTO Clientes_Telefonica(nombre_completo,ciudad,email,direccion,telefono,pago_mensual,minutos_usados,minutos_plan)VALUES("Alejandro Esteban Pardo Gomez","Temuco","Ale@live.cl","av.alemania #540","98765432","40000","80","120"),

(" Maria Alejandra Ponce Rios","Valdivia","Apr@hotmail.com","los dominicos #345","7895647","30000","60","60"),

("Camila Fernanda Figueroa Hernandez","Santiago","camif@live.cl","vitacura #670","67890545","25000","30","30"),

("Javier Ignacio Rojas Espinoza ","Talca","jrojas@hotmail.com,","El prado #234","67893454","40000","100","100"),

("Carolina Fernanda Estrada Lopez","Santiago","carolita@hotmail.com","rio negro #346","78034251","30000","50","50"),

("Barara Consuelo Sandoval Horta","Temuco","bcs@live.cl","rodo #234","67923023","6000","20","20"),

("Camilo Esteban Paredes Celis","Temuco","cpc@live.cl","andes #2334","93488211","35000","70","70"),

("Carla Alejandra Sandoval Espinpza","Temuco","carli@hotmail.com","rodo #567","87323924","10000","15","25"),("Juan Pablo Rodriguez Castro","Temuco","xerox@live.cl","Calderon#580","78348912","50000","200","250")

Anteriormente se realizo el ingreso de datos a la tabla por nuestro compañero Javier Rojas, la cual en un comienzo se vió así:


















Se procede a modificar la tabla para llegar a la primera forma normal (1FN) que es la de atomicidad para eso utilizaremos el comando ALTER TABLE.
Como se muestra detalladamente a continuación:

ALTER TABLE Clientes_Telefonica ADD COLUMN primer_nombre VARCHAR(15)AFTER nombre_completo // se ingresa el comando ALTER TABLE para crear una nueva columna llamada primer_nombre que puede contener un máximo de 15 caracteres.


ALTER TABLE Clientes_Telefonica ADD segundo_nombre VARCHAR(15)AFTER primer_nombre, ADD apellido_paterno VARCHAR(15)AFTER segundo_nombre,ADD apellido_materno VARCHAR(15) AFTER apellido_paterno

// nuevamente se ingresa el comando ALTER TABLE para la creación tres nuevas columnas llamadas segundo_nombre, primer_apellido y segundo_apellido. Las cuales se van ubicando después de la columna anteriormente creada lo cual se lo indica el comando AFTER.













Procedemos a ingresar los códigos en el siguiente orden:
Definición de los comandos que presenta el código a utilizar:



















1.) UPDATE Clientes_Telefonica SET primer_nombre= SUBSTRING_INDEX (nombre_completo ,' ', 2 );
Lo que hacemos al ingresar este comando en copiar las dos primeras palabras de la columna nombre_completo y luego pegarla en la columna primer_nombre.






2.)
UPDATE Clientes_Telefonica SET segundo_nombre= SUBSTRING_INDEX (primer_nombre,' ', -1); 
//Al ingresar el siguiente código lo que se hace es copiar la segunda palabra de la columna primer_nombre y pegarla en la columna segundo nombre.





3.)
UPDATE Clientes_Telefonica SET primer_nombre= SUBSTRING_INDEX (nombre_completo ,' ', 1);
Con esta parte del código se procede a borrar el segundo nombre que esta en la columna primer nombre lo cual es indicado por el.





4.)
UPDATE Clientes_Telefonica SET apellido_paterno= SUBSTRING_INDEX (nombre_completo ,' ',-2);
Luego volvemos a ingresar este código pero copiamos los dos apellidos y los trasladamos a la columna apellido_materno, específicamente eso se indica en (nombre_completo,' ',-2).




5.)
UPDATE Clientes_Telefonica SET apellido_materno= SUBSTRING_INDEX (apellido_paterno ,' ',-1);
Con este comando hacemos el mismo procedimiento la diferencia es que movemos de apellido_paterno a apellido_materno.




6.)
UPDATE Clientes_Telefonica SET apellido_paterno= SUBSTRING_INDEX (apellido_paterno ,' ',1);
El siguiente código lo que hace es borrar el apellido materno que se encuentra dentro de la columna apellido_materno





Desarrollo problema Nº2:































Reflexión

    a pesar de que el trabajo en equipo no se puede evidenciar muy bien en la actividad ya realizada, puedo decir que los integrantes eramos 4 y cada uno tuvo que encargarse de alguna parte del trabajo, ya sea sacando screenshots a las tablas, otro insertando los datos a las tablas, otro  modificando las tablas y así se pudo lograr un trabajo muy eficiente y rápido. En cuanto a los problemas nos sirvieron de mucha ayuda, ya que son los comandos basicos que una persona debe manejar si quiere aprender a usar las bases de datos y poder consultar en ellas. Cualquier consulta o duda de esta actividad la pueden preguntar en el muro de esta entrada :)

No hay comentarios:

Publicar un comentario