Esempio didattico Mysql: Galleria di quadri (Classe IV A Mercurio)
Schema E/R
Schema relazionale
PITTORI(NomePittore, Genere)
QUADRI(Titolo, Autore, Altezza, Larghezza)
Schema relazionale esteso
CREARE LE TABELLE
CREATE TABLE PITTORI
(
NomePittore CHAR(30) not null,
Genere CHAR(20),
primary key(NomePittore)
);
CREATE TABLE QUADRI
(
Titolo CHAR(40) not null,
Autore CHAR(30) not null,
Altezza DECIMAL(5, 2),
Larghezza DECIMAL(5, 2),
primary key(Titolo, Autore)
);
Inserire i dati
INSERT INTO PITTORI VALUES ("Rossi", "paesaggista");
INSERT INTO PITTORI VALUES ("Bianchi", "ritrattista");
INSERT INTO PITTORI VALUES ("Verdi", "paesaggista");
INSERT INTO QUADRI VALUES ("Tramonto", "Rossi", 1.20, 2.40);
INSERT INTO QUADRI VALUES ("Tramonto", "Verdi", 1.20, 2.40);
INSERT INTO QUADRI VALUES ("Egitto", "Verdi", 0.60, 0.60);
INSERT INTO QUADRI VALUES ("Andrea", "Bianchi", 0.60, 0.40);
Aumentare di 10 cm le misure dei quadri di Verdi
UPDATE QUADRI
SET Larghezza=Larghezza+0.10, Altezza=Altezza+0.10
WHERE (Autore = "Verdi");
Cancellare i quadri di Verdi
DELETE *
FROM QUADRI
WHERE (Autore = "Verdi");
Query
Elencare tutti i quadriSELECT *
FROM QUADRI;
Elencare tutti i quadri del pittore Verdi
SELECT *
FROM QUADRI
WHERE (Autore = "Verdi");
Elencare tutti i titoli dei quadri presenti
SELECT Titolo
FROM QUADRI;
Elencare i quadri di forma quadrata, con la loro superficie
SELECT QUADRI.*, Altezza*Larghezza AS Superficie
FROM QUADRI
WHERE (Altezza = Larghezza);
Elencare tutti i quadri di pittori del genere paesaggista
SELECT QUADRI.*
FROM QUADRI, PITTORI
WHERE (NomePittore = Autore) AND
(Genere = "paesaggista");
SELECT QUADRI.*
FROM QUADRI INNER JOIN PITTORI ON QUADRI.NomePittore=PITTORI.Autore
WHERE (Genere = "paesaggista");
Quanti quadri ha fatto ciascun pittore?
SELECT Autore, Count(*)
FROM QUADRI
GROUP BY Autore;
fonte didattica: http://www.valentinocondoluci.it
Commenti
Posta un commento