VINI(Codice, Descrizione, Fornitore, Prezzo) VENDITE(Vino, Anno, Quantità) FORNITORE(Codice, Nome, Indirizzo, Telefono)
Identificare le chiavi esterne presenti nello schema, indicando, per ognuna di esse, la tabella referente e quella riferita
Per come sono definite le chiavi primarie ed esterne:
Un fornitore può fornire più di un vino?
Sì, essendo la chiave esterna in VINI si tratta di una relazione uno a molti, nel senso che un vino è prodotto da un fornitore, e un fornitore produce più vini
Un vino può essere fornito da più fornitori?
No perchè in VINI non possono esistere due tuple con Codice uguale e Fornitore diverso
Un vino può essere venduto in quantità diverse?
A patto che la vendita venga fatta in due anni diversi, sì
Possono esistere vini con la stessa descrizione?
Sì, la descrizione non è una chiave primaria e quindi non deve essere unica
Aggiungere la colonna annata alla tabella VINI
ALTER TABLE VINI ADD COLUMN Annata DECIMAL(4);
Aumentare del 15% il prezzo dei vini forniti dal fornitore con nome “Le Fracce”
UPDATE VINI SET Prezzo = Prezzo * 1.15
WHERE Fornitore IN(
SELECT Codice FROM FORNITORE WHERE Nome = 'Le Fracce'
);
Cancellare le vendite effettuate prima del 2001
DELETE FROM VENDITE WHERE Anno < 2001;
Trovare codice e descrizione dei vini che abbiano almeno una vendita nel 2014 o nel 2015
SELECT Codice, Descrizione
FROM VENDITE JOIN VINI ON (Vino = Codice)
WHERE Anno = 2014 OR Anno = 2015;
Per ogni vino che abbia almeno una vendita in due anni diversi, mostrare il codice e la somma delle quantità vendute in tutti gli anni
SELECT Codice, SUM(Quantità) FROM VENDITE
WHERE Vino IN (
SELECT Vino FROM VENDITE
GROUP BY Vino
HAVING COUNT(Anno) >= 2
)
GROUP BY Vino
Trovare il codice dei fornitori che non offrono vini di costo inferiore ai cinque euro
SELECT Codice FROM FORNITORE
MINUS
SELECT Codice FROM FORNITORE JOIN VINI ON (Codice = Fornitore)
WHERE Prezzo < 5;
Trovare i vini che sono stati venduti nel 2015 ma non nel 2016
SELECT Vino FROM Vendite WHERE Anno = 2015
MINUS
SELECT Vino FROM Vendite WHERE Anno = 2016