Actividad 6

a. Insertar registros con valores de otra tabla

(Insert - Select- Join)

Se crea una tercera entidad para insertar los registros con los valores de las entidades anteriores Casadisquera

Se ingresa registro a las dos entidades fuente (Cancion-Casadisquera)

Ejemplo: insertar en la entidad *cantidadcasadisquera los nombres  de la casadisquera con la cantidadcasadisquera

Análisis :
1. cual es el nombre de la tabla en la que se va a insertar los datos
  Cantidadcasadisquera
2. Que campo(campos contiene la informacion solicitada)y de que tabla
    Campo: nombre      ,   Tabla: casadisquera
3. Condicion(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=cancion.idcasa_miusic
5. Comando(s):
   insert - select  join y diseñar la sintaxis mysql


Sintasis>>>>>>
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)

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. 

3. Actualizar los valores para este campo creado en la entidad cancion.
a. Se puede actualizar uno a uno los registros

Ejemplo: update cancion set casadisquera='EMI' where idcasa_miusic='003';
Nota: manualmente se elimina el campo idcasa_miusic y la entidad casadisquera.

4. Realizando la actualización con un join


Análisis :
1. cual es el nombre de la tabla en la que se va a insertar los datos
      Tabla: cancion
     Informacion: cancion.casadisquera=casadisquera.nombre
2. Que campo(campos contiene la informacion solicitada)y de que tabla
     Campo: nombre 
     Tabla: casadisquera
3. Condicion(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=cancion.idcasa_miusic
5. Comando(s):
update - join


Sintaxis 1 >>>
   alter table cancion add casadisquera varchar(30);

Sintaxis 2 >>>
   update cancion
-> join casadisquera
-> on cancion.idcasa_miusic=casadisquera.idcasa_miusic
-> set cancion.casadisquera=casadisquera.nombre;

c. Actualización en cascada

(Update - Join)

Ejercicio:
Actualizar el código de la casa disquera EMI por 16

Análisis :
1. cual es el nombre de la tabla en la que se va a insertar los datos
Tabla: cancion y casadisquera
Informacion: casadisquera-enlacedisquera='16', cancion.codigo='16';
2. Que campo(campos contiene la informacion solicitada)y de que tabla
Campo: N/A
Tabla: N/A
3. Condicion(es): adicionales si las hay
   casadisquera.nombre='EMI';
4. Que tablas estan involucradas en la consulta y como se relacionan:
Tablas: cancion y casadisquera
Relacion: casadisquera.idcasa=cancion.codigo
5. Comando(s):
update - join


D. Borrar registros consultando otras tablas
(Delete - Join

Se puede hacer de dos formas:

1. Borrar los registros direccionando el código
Ejemplo:  Delete from libro where código=1;

2. Realizar todo en un solo paso


EJERCICIO:
Borrar las canciones de la casa disqiera 'EMI'

Análisis :
1. cual es el nombre de la tabla en la que se va a eliminar los datos
Tabla: cancion
2. Que campo(campos contiene la informacion solicitada)y de que tabla
Campo: N/A
Tabla: N/A
3. Condicion(es): adicionales si las hay
casadisquera.nombre='EMI';
4. Que tablas estan involucradas en la consulta y como se relacionan:
Tablas: cancion y casadisquera
Relacion: casadisquera.idcasa=cancion.codigo
5. Comando(s):
delete - join


Sintaxis  >>> 
delete cancion
-> from cancion
-> join casadisquera
-> on cancion.enlacedisquera=casadisquera.codigo
-> where casadisquera.nombre='EMI';

E. Borrar registros buscando coincidencia en otras tablas
(Delete - Join)

1.Teniendo las entidades canción y casadisquera. 
2.Busquemos eliminar todas las canciones cuyo código no exista en la tabla casadisquera.

EJERCICIO:

Agregando dos registros en la tabla canción.
insert into cancion values('007','Pajarando','Cargamo ODG','9')
insert into cancion values('008','Violeta','SDRT','18');

Análisis :
1. cual es el nombre de la tabla en la que se va a eliminar los datos
Tabla: cancion
2. Que campo(campos contiene la informacion solicitada)y de que tabla
Campo: N/A
Tabla: N/A
3. Condicion(es): adicionales si las hay
casadisquera.nombre='EMI';
4. Que tablas estan involucradas en la consulta y como se relacionan:
Tablas: cancion y casadisquera
Relacion: casadisquera.idcasa=cancion.codigo
5. Comando(s):
delete - join


Consultamos Primero y despues Eliminamos

Sintaxis CONSULTA  >>> 
select c.* from cancion as c
-> left join casadisquera as ca
-> on c.enlacedisquera=ca.codigo
-> where ca.codigo is null;

Sintaxis DELETE  >>>
delete cancion from cancion
-> left join casadisquera
-> on cancion.enlacedisquera=casadisquera.codigo
-> where casadisquera.codigo is null;

F. Borrar registros en cascada
(Delete - Join)

Siguiendo con el ejemplo de las tablas anteriores (canción - casadisquera)

1. Se puede borrar la información uno a uno los registros siguiendo condiciones.
2. Se puede borrar los registros requeridos a través de una sola consulta (cascada)

EJERCICIO:
Eliminar la información dela casa disquera Sony & BMG en cascada


Análisis :
1. cual es el nombre de la tabla en la que se va a eliminar los datos
  Tabla: cancion y casadisquea
2. Que campo(campos contiene la informacion solicitada)y de que tabla
  Campo: N/A
  Tabla: N/A
3. Condicion(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):
  Delete - join

Sintaxis >>>
  delete cancion,casadisquera
-> from cancion
-> join casadisquera
-> on cancion.enlacedisquera=casadisquera.codigo
-> where casadisquera.nombre='Sony & BMG';

BASES DE DATOS