viernes, 16 de diciembre de 2011

Comunicación Escrita "Ejercicio SQL"

Comunicación Escrita: "Ejercicio SQL - ISBD"


Alumno: Juan Francisco Mendoza Martínez.
Competencia: Comunicación Oral y Escrita.
Palabras Claves: alter, table.


Descripción de la actividad:

 - Desarrollar informe en donde se muestre el resultados de dos ejercicios propuestos por el profesor, estos referentes al capitulo 5 "Alter". Se debería mostrar la sentencia SQL escrita además de el pantallazo correspondiente al resultados.


 
 Desarrollo Actividad:

CREATE TABLE `clientes_domesticos`
( `id` INT NOT NULL AUTO_INCREMENT ,
`nombre_completo` TEXT NULL , `ciudad` TEXT NULL ,
`email` TEXT NULL ,
`direccion` VARCHAR(12) NULL ,
`telefono` VARCHAR(8) NULL ,
`pago_mensual` INT NULL ,
`minutos_usados` INT NULL ,
`minutos_plan` VARCHAR(45) NULL ,
PRIMARY KEY (`id`) );
INSERT INTO `cristian`.`clientes_domesticos` (`id`, `nombre_completo`, `ciudad`, `email`, `direccion`, `telefono`, `pago_mensual`, `minutos_usados`, `minutos_plan`)
VALUES ( '35', 'Roberto Antonio albares Milan', 'concepcion', 'raamilan@gmail.com', 'trizano 234', '76548797', 35000, 63, '120'); 
 



select*from clientes_domesticos;

 
 Nota: no se ve como en mysql command line client por que aquí use mysql workbench para mejor visualización de la tabla


Ejercicio que se nos fue designado como grupo:

D.- id es una clave primaria simple, elimínela y defina como clave primera compuesta el correo y el teléfono.


También usamos "alter table" para eliminar una clave primaria.
Para eliminar una clave primaria usamos:


alter table "tabla"
drop primary key;


Con "alter table" y "drop primary key" eliminamos una clave primaria definida al crear la tabla o agregada luego.


Si queremos eliminar la clave primaria establecida en un campo "auto_increment" aparece un mensaje de error y la sentencia no se ejecuta porque si existe un campo con este atributo DEBE ser clave primaria. Primero se debe modificar el campo quitándole el atributo "auto_increment" y luego se podrá eliminar la clave.
Si intentamos establecer como clave primaria un campo que tiene valores repetidos, aparece un mensaje de error y la operación no se realiza.



1) Para borrar el auto increment

ALTER TABLE clientes_domesticos CHANGE COLUMN id id INT(11) NOT NULL ;






2) Eliminamos la primery key

ALTER TABLE `cristian`.`clientes_domesticos` DROP PRIMARY KEY ;


 



NOTA: Agregamos a email y telefono p_k
No puedes tener un text en una clave primaria o con un UNIQUE sin especificar un número de caracteres máximo a
usar a la hora de usarlo para indizar, porque ese text podría ser increíblemente grande.
por lo que debemos modificar email a un char,


ALTER TABLE <nombre tabla>
MODIFY <nombre columna> <tipo dato nuevo>;



3) ALTER TABLE clientes_domesticos
     MODIFY email TinyBlob;










4)  ALTER TABLE clientes_domesticos
     MODIFY email CHAR(30);
     por el tamaño de text hay que modificar el tipo de dato de email para poder crear las   

     primery keys.

 


5) ALTER TABLE `cristian`.`clientes_domesticos`
    CHANGE COLUMN `telefono` `telefono` VARCHAR(8) NULL ,
    ADD PRIMARY KEY (`telefono`) ; 


 


6) ALTER TABLE `cristian`.`clientes_domesticos`
    CHANGE COLUMN `email` `email` char(30) NULL ,
    DROP PRIMARY KEY ,
    ADD PRIMARY KEY (`telefono`, `email`) ; 


 




Ejercicio General:

Nombre completo no es una columna atómica, elimínela y agregué las que sean necesarias utilizando el tipo de dato correcto, no pierda la información ya almacenada de nombre completo. 


1) Creamos la columna primer_nombre
Alter table clientes_domesticos
add column primer_nombre char(30)after id;







2) Agregamos los datos para nuestra columna primer_nombre
UPDATE clientes_domesticos
set primer_nombre=substring_index(nombre_completo,' ',1);



 


3) Update que almacene todo menos el primer nombre. 


update clientes_domesticos
set nombre_completo=substring_index(nombre_completo,' ',-3) ;



 


4) Creamos la columna segundo_nombre
alter table clientes_domesticos
add column segundo_nombre char(30) after primer_nombre;






5) Agregamos los datos para nuestra columna segundo_nombre
update clientes_domesticos
set segundo_nombre=substring_index(nombre_completo,' ',1);





6) update que almacene todo menos los nombres.
update clientes_domesticos
set nombre_completo=substring_index(nombre_completo,' ',-2) ; 

 


7) Creamos la columna primer_apellido
alter table clientes_domesticos
add column primer_apellido char(30)after segundo_nombre;

  


8) Agregamos los datos para nuestra columna primer_apellido
update clientes_domesticos
set primer_apellido=substring_index(nombre_completo,' ',1);







9) Creamos la columna segundo_apellido
alter table clientes_domesticos
add column segundo_apellido char(30) after primer_apellido;



10) Agregamos los datos para nuestra columna segundo_apellido
update clientes_domesticos
set segundo_apellido=substring_index(nombre_completo,' ',-1);





11) Finalmente borramos la columna que no nos sirve la cual es nombre_completo
alter table clientes_domesticos
drop column nombre_completo;










 



Vista final de la tabla clientes_domesticos:






Reflexión:

- Informe el cual obtuvimos calificación nota 7, por la buena estructuración y orden en la que esta el desarrollo del informe, dado que posee todo lo solicitado por el profesor.

No hay comentarios:

Publicar un comentario