|
Tratto da: AA. VV. INFORMATICA 3 - Zanichelli Schema E/Ro meglio Schema relazionaleANAGRAFE(Matricola, Cognome, Nome, [Data di nascita], Indirizzo, Cap, Cittā, Telefono) DIPLOMATO(Matricola, Sezione, [Indirizzo di studio], Voto, Anno) Diplomato.Matricola č chiave esterna collegata a Anagrafe.Matricola QueryMatricole e voti SELECT Matricola, Voto FROM DIPLOMATO; Cognomi e voti SELECT Cognome, Voto FROM ANAGRAFE, DIPLOMATO; SELECT Cognome, Voto FROM ANAGRAFE, DIPLOMATO WHERE (ANAGRAFE.Matricola = DIPLOMATO.Matricola); SELECT Cognome, Voto FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola); Cognomi e voti, dei diplomati con voto compreso tra 42 e 48 SELECT Cognome, Voto FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) WHERE (Voto BETWEEN 42 AND 48); Cognomi e voti, dei diplomati di Milano o Legnano SELECT Cognome, Voto FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) WHERE (Cittā IN ("Milano","Legnano")); Cognomi e voti, dei diplomati il cui cognome comincia con la lettera A SELECT Cognome, Voto FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) WHERE (Cognome LIKE "A*"); Cognomi e voti, dei diplomati che abitano in una cittā con la I come seconda lettera SELECT Cognome, Voto FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) WHERE (Cittā LIKE "?I*"); Cognomi e voti ordinati rispetto al voto SELECT Cognome, Voto FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) ORDER BY Voto DESC; Tabella DIPLOMATI SELECT * FROM DIPLOMATI; Tutto sui diplomati... SELECT * FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola); Tutto su tutti... SELECT * FROM ANAGRAFE LEFT JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola); La media dei voti SELECT AVG(Voto) FROM DIPLOMATO; La media dei voti per cittā SELECT Cittā, AVG(Voto) FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) GROUP BY Cittā; La media dei voti per cittā, con almeno 50 di media SELECT Cittā, AVG(Voto) FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) GROUP BY Cittā HAVING (AVG(Voto) >= 50); La classifica della media dei voti per cittā SELECT Cittā, AVG(Voto) FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) GROUP BY Cittā ORDER BY AVG(Voto) DESC; Creare la tabella ANAGRAFE CREATE TABLE ANAGRAFE ( Matricola char(5), Cognome char(20), Nome char(15), [Data di nascita] date, Indirizzo char(30), Cap char(5), Cittā char(20), Telefono char(11) ); INSERT INTO ANAGRAFE VALUES ("10100", "De Nuccio", "Michele", "22/02/78", "Largo Beethoven, 1", "21013", "Gallarate", "0331/551412", "F"); ... Creare la tabella DIPLOMATO CREATE TABLE DIPLOMATO ( Matricola char(5), Sezione char(1), [Indirizzo di studio] char(1), Voto integer, Anno integer ); Modificare il codice relativo al sesso del record con codice 10100 UPDATE ANAGRAFE SET Sesso = 'M' WHERE (Matricola = "10100"); Eliminare il record con codice 10100 DELETE * FROM ANAGRAFE WHERE (MATRICOLA = "10100"); Eliminare la tabella ANAGRAFE DROP TABLE ANAGRAFE; Aggiungere il campo Sesso alla tabella ANAGRAFE ALTER TABLE ANAGRAFE ADD Sesso char(1); Eliminare il campo Sesso dalla tabella ANAGRAFE ALTER TABLE ANAGRAFE DROP Sesso; Creazione di TABTEMP SELECT Cognome, Voto INTO TABTEMP FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) ORDER BY Voto DESC; Accodamento in TABTEMP INSERT INTO TABTEMP SELECT Cognome, Voto FROM ANAGRAFE INNER JOIN DIPLOMATO ON (ANAGRAFE.Matricola = DIPLOMATO.Matricola) ORDER BY Voto DESC; |
|