ACTIVIDAD 7
En el siguiente archivo se encuentran las diapositivas que se trabajaron en clase:
MANEJO DE DATOS EN CASCADA
A. Insertar registros con valores de otra tabla:
- (Insert - select- Join)
Se crean las entidades relacionadas:
cancion
casadisquera
Se crea una tercera entidad para insertar los registros con los valores de una de las entidades anteriores
cantidadcasadisquera
Ejemplo:
** Insertar en la entidad cantidadcasadisquera los nombres de la casa disquera con la cantidadcanciones.
Analisis:
1. Cual es el nombre de la tabla en la que se van a insertar los datos
- cantidadcasadisquera
2. Que campos (campos contiene la información solicitada) y de que tabla
- campo: nombre
- Tabla: casadisquera
3. Condiciones (es) adicionales si las hay
- N/A
4. Que tablas estan involucradas en la consulta y como se relacionan
- Tablas: cancion y casadisquera
- Relacion: casadisquera idcasa_miusic=cancion.idcasa_miusic
5. Comando(s)
- Insert -Select - Join y diseñar la sintaxis mysql
Sintaxis:
select c.nombre,count(co.idcasa_miusic)
-> from casadisquera as c
-> left join cancion as co
-> on c.idcasa_miusic=co.idcasa_miusic
-> group by c.nombre;
** insertar en la tabla:
insert into cantidadcasadisquera
-> select c.nombre,count(co.idcasa_miusic)
-> from casadisquera as c
-> left join cancion as co
-> on c.idcasa_miusic=co.idcasa_miusic
-> group by c.nombre;
B. Actualizar datos con valores de otra tabla
- (Update)
Siguiendo con el ejemplo de las entidades cancion y casadisquera
1. Se pretende alterar la tabla cancion para que almacene el nombre de la casa disquera y eliminar la entidad casadisquera
2. Agregar un campo llamado casadisquera en la entidad cancion
Sintaxis:
alter table cancion add casadisquera varchar(30);
3. Actualizar los valores para que este campo creado en la entidad cancion (casadisquera)
a. Se puede actualizar uno a uno los registros
Ejemplo:
update cancion set casadisquera='EMI' where idcasa_miusic='003';
Analisis:
1. Cual es el nombre de la tabla en la que se van a actualizar los datos y con que informacion
- Informacion: cancion.casadisquera=casadisquera.nombre
- Tabla: cancion
2. Que campos (campos contiene la informacion solicitada) y de que tabla
- Campo: nombre
- Tabla: casadisquera
3. Condiciones (es) adicionales si las hay
- N/A
4. Que tablas están involucradas en la consulta y como se relacionan
- Tablas: cancion y casadisquera
- Relacion: casadisquera idcasa_miusic=cancion.idcasa_miusic
5. Comando(s)
- update - join y diseñar la sintaxis mysql
Sintaxis:
update cancion
-> join casadisquera
-> on cancion.idcasa_miusic=casadisquera.idcasa_miusic
-> set cancion.casadisquera=casadisquera.nombre;
C. Actualización en cascada
- ( Update - Join)
** Actualizar el código de la casa disquera EMI por 16
Analisis:
1. Cual es el nombre de la tabla en la que se van a actualizar los datos y con que informacion
- Informacion: casadisquera.enlacedisquera='16' , cancion.codigo='16'
- Tabla: cancion y casadisquera
2. Que campos (campos contiene la informacion solicitada) y de que tabla
- Campo: N/A
- Tabla: N/A
3. Condiciones (es) adicionales si las hay
- casadisquera.nombre='EMI'
4. Que tablas están involucradas en la consulta y como se relacionan
- Tablas: cancion y casadisquera
- Relacion: casadisquera.idcasa_miusic=cancion.codigo
5. comando(s)
- update - join y diseñar la sintaxis mysql
Sintaxis:
update cancion as n
-> join casadisquera as c
-> on n.enlacedisquera=c.codigo
-> set n.enlacedisquera='16',c.codigo='16'
-> where c.nombre='EMI';
D. Borrar registros consultando otras tablas
- (Delete - Join)
** Se puede hacer de dos formas
Ejemplo:
- delete from libro where codigo=1;
** Borrar las canciones de la casa disquera 'EMI'
Análisis:
1. Cual es el nombre de la tabla en la que se van a actualizar los datos y con que información
- Tabla: canción
2. Que campos (campos contiene la información solicitada) y de que tabla
- Campo: N/A
- Tabla: N/A
3. Condiciones (es) adicionales si las hay
- casadisquera.nombre='EMI'
4. Que tablas están involucradas en la consulta y como se relacionan
- Tablas: cancion y casadisquera
- Relacion: casadisquera.idcasa_miusic=cancion.código
5. Comando(s)
- delete - join y diseñar la sintaxis mysql
Sintaxis:
delete cancion
-> from cancion
-> join casadisquera
-> on cancion.enlacedisquera=casadisquera.codigo
-> where casadisquera.nombre='EMI';
E. Borrar registros buscando coincidencias en otras tablas
- (delete - Join)
** Teniendo las entidades cancion y casadisquera, busquemos eliminar todas las canciones cuyo código no exista en la tabla casadisquera.
** Realizamos una consulta para verificar que codigos de la tabla ancion no esta en la casadisquera
Analisis:
1. Cual es el nombre de la tabla en la que se van a actualizar los datos y con que informacion
- Tabla: canción y casadisquera
2. Que campos (campos contiene la informacion solicitada) y de que tabla
- Campo: *
- Tabla: cancion
3. Condiciones (es) adicionales si las hay
- casadisquera.codigo is null
4. Que tablas estan involucradas en la consulta y como se relacionan
- Tablas: cancion y casadisquera
- Relacion: casadisquera.enlacedisquera=casadisquera.codigo
5. Comando(s)
- select- left - join y diseñar la sintaxis mysql
Sintaxis:
select * from cancion as c
-> left join casadisquera as ca
-> on c.enlacedisquera=ca.codigo
-> where ca.codigo is null;
F. Borrar registros en cascada
- (delete - join)
** Siguiendo con el ejemplo de las tablas anteriores (cancion - casadisquera)
** Se puede borrar las información uno a uno los registros siguiendo condiciones
** Se puede borrar los registros requeridos a través de una sola consulta (cascada)
** Eliminar la informacion de la casadisquera Sony &BMG en cascada
Analisis:
1. Cual es el nombre de la tabla en la que se van a actualizar los datos y con que informacion
- Tabla: canción y casadisquera
2. que campos (campos contiene la informacion solicitada) y de que tabla
- N/A
3. Condiciones (es) adicionales si las hay
- casadisquera.nombre='Sony & BMG'
4. Que tablas estan involucradas en la consulta y como se relacionan
- Tablas: cancion y casadisquera
- Relacion: casadisquera.enlacedisquera=casadisquera.codigo
5. Comando(s)
- select- left - join- y diseñar la sintaxis mysql
Sintaxis:
delete cancion,casadisquera
-> from cancion
-> join casadisquera
-> on cancion.enlacedisquera=casadisquera.codigo
-> where casadisquera.nombre='Sony &BMG';
En elsiguiente archivo se encuentra todo lo trabajado en clase. TEE
En el siguiente archivo se encuentra la BD trabajada en clase.

