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.
- 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) ;
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;
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);
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;
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);
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