--Esercitazione sviluppata secondo schema esercitazione 1 e 2 pubblicate; -- procedure per inserimento vincoli di reazioni su chiavi esterne giā esistenti alter table testate drop redazione; alter table testate add redazione char(4), add foreign key(redazione) references redazioni(idRedazioni) on delete cascade on update cascade; -- procedure per inserimento vincoli di reazioni su chiavi esterne giā esistenti alter table inspriv drop idPrivato; alter table inspriv add FOREIGN KEY(idPrivato) references privati(idPrivato) on delete set null on update set null; --inserimento redazioni INSERT INTO redazioni values ('A111','Comitato1','Bari','www.comitatobari.it'); INSERT INTO redazioni values ('A112','Comitato2','Palermo','www.comitatopalermo.it'); INSERT INTO redazioni values ('A113','Comitato3','Napoli','www.comitatonapoli.it'); INSERT INTO testate values('AAAA','GiornaleBari','A111'); INSERT INTO testate values('BBBB','GiornalePalermo','A112'); INSERT INTO testate values('CCCC','GiornaleNapoli','A113'); -- attenzione l'esercitazione 2 ha modificato lo schema -- omettendo via e cittā; -- inserimento redattori INSERT INTO redattori values ('0001','Rossi','Paolo','70100','prova@libero.it'); INSERT INTO redattori values ('0002','Verdi','Francesco','40100','prova2@libero.it'); INSERT INTO redattori values ('0003','Gialli','Giuseppe','30130','prova3@libero.it'); -- associazione redattori a delle testate INSERT INTO redazRedat values ('A111','001'); INSERT INTO redazRedat values ('A112','002'); INSERT INTO redazRedat values ('A113','003'); INSERT INTO redazRedat values ('A111','003'); -- inserimento delle categorie con rispettivo riferimento alle rispettive categorie padre INSERT INTO categorie values ('Motori'); INSERT INTO categorie values ('Auto benzina','Motori'); INSERT INTO categorie values ('Auto diesel','Motori'); INSERT INTO categorie values ('BMW auto juornal','Auto diesel'); delete from privati; --esempio inserimento multiplo; -- attenzione l'esercitazione 2 ha modificato lo schema -- omettendo via e provincia; insert into privati values ('#01','Ciani','Francesco','Roma','02120','aciani@interfree.it'); insert into privati values ('#02','Gialli','Antonio','Bologna','15120','gialli@interfree.it'); insert into privati values ('#03','Rossi','Carlo','Napoli','74020','rossi@wind.it'); insert into aziende values ('AAA','Software int.','Paolo Rossi','02451214'); insert into aziende values ('BBB','Cola & Drink','Giacomelli Francesco', '06451258'); insert into inserzioni values ('001','Vendo motori Yahamaa','motori'); insert into inserzioni values ('003','Vendo motorino Vespa','motori'); -- stampa i nomi dei giornali select nome from testate; --l'elenco dei redattori presenti nel database select * from redattori; --l'elenco dei redattori presenti nel database, mostrando cognome e nome select cognome, nome from redattori; --l'elenco dei redattori presenti nel database, mostrando cognome e nome, e-mail select nome,cognome,email from redattori; -- l'elenco dei redattori presenti nel database la cui e-mail inizia con la lettera a; select * from redattori WHERE email like 'a%'; --redattori che hanno inserito un'email corretta (quelli in cui il campo e-mail contiene una chiocciola; select * from redattori WHERE email like '%@%'; --redattori che hanno inserito un'email sbagliata (quelli in cui il campo e-mail NON contiene una chiocciola; select * from redattori WHERE email not like '%@%'; --visualizzare il nome di comitato di tutte le redazioni presenti nel database, se presente anche l'indirizzo web; select nomeComitato,indirizzoWeb from redazioni; --visualizzare il testo e il codice delle inserzioni della categoria 'casa', se questa categoria non č presente prenderne un'altra; select codice,testo from inserzioni where categoria like 'motori'; --visualizzare il codice e il testo di tutte le inserzioni che hanno al loro interno la parola 'casa'; select codice,testo from inserzioni where testo like '%motori%'; -- visualizzare il codice e il testo di tutte le inserzioni che hanno al loro interno la parola 'casa' e la sottostringa 'vend'; select codice,testo from inserzioni where testo like '%motori%' and testo like '%vend%'; --visualizzare il codice e il testo di tutte le inserzioni che hanno al loro interno la sottostringa 'modic'; select codice,testo from inserzioni where testo like '%modic%'; --visualizzare l'elenco dei privati presenti nel database; select * from privati; --visualizzare l'elenco dei privati provenienti dalla cittā con CAP: 70125 o 70126; select * from privati where CAP = '70125' or CAP = '70126'; --visualizzare l'elenco delle aziende il cui telefono contiene le cifre: 556 select * from privati where CAP like '70125' or testo like '70126'; -- visualizzare l'elenco delle aziende il cui telefono contiene le cifre: 556 select * from aziende where telefono like '%556%';