Schema relazionale
- STUDENTE(Matricola, Cognome, Nome, Data di nascita, Indirizzo, Cap, Città, Telefono, …)
- DIPLOMATO(Matricola, Sezione, Indirizzo di studio, Voto, Anno, Data ritiro, Pagato, …)
Query
- Creare la tabella ANAGRAFE
CREATE TABLE STUDENTE ( 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) )
- 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 STUDENTE SET Sesso = 'M' WHERE Matricola = "10100"
- Eliminare il record con codice 10100
DELETE * FROM STUDENTE WHERE MATRICOLA = "10100"
- Eliminare la tabella STUDENTE
DROP TABLE STUDENTE
- Aggiungere il campo Sesso alla tabella STUDENTE
ALTER TABLE STUDENTE ADD Sesso char(1)
- Eliminare il campo Sesso dalla tabella STUDENTE
ALTER TABLE STUDENTE DROP Sesso
- Inserire un nuovo studente
INSERT INTO STUDENTE VALUES ("10100", "De Nuccio", "Michele", "22/02/78", "Largo Beethoven, 1", "21013", "Gallarate", "0331/551412", "F")
- Creazione di TABTEMP
SELECT Cognome, Voto INTO TABTEMP FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola ORDER BY Voto DESC
- Accodamento in TABTEMP
INSERT INTO TABTEMP SELECT Cognome, Voto FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola ORDER BY Voto DESC
- Matricole e voti
SELECT Matricola, Voto FROM DIPLOMATO
- Cognomi e voti
SELECT Cognome, Voto FROM STUDENTE, DIPLOMATO
- o meglio
SELECT Cognome, Voto FROM STUDENTE, DIPLOMATO WHERE STUDENTE.Matricola = DIPLOMATO.Matricola
- o meglio
SELECT Cognome, Voto FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola
- Cognomi e voti, dei diplomati con voto compreso tra 70 e 80
SELECT Cognome, Voto FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola WHERE Voto BETWEEN 70 AND 80
- Cognomi e voti, dei diplomati di Milano o Legnano
SELECT Cognome, Voto FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.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 STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.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 STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola WHERE Città LIKE "?I*"
- Cognomi e voti ordinati rispetto al voto
SELECT Cognome, Voto FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola ORDER BY Voto DESC
- Tabella DIPLOMATI
SELECT * FROM DIPLOMATI
- Tutto sui diplomati…
SELECT * FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola
- Tutto su tutti…
SELECT * FROM STUDENTE LEFT JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola
- La media dei voti
SELECT Avg(Voto) FROM DIPLOMATO
- La media dei voti per città
SELECT Città, Avg(Voto) FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola GROUP BY Città
-
La media dei voti per città, con almeno 80 di media
SELECT Città, Avg(Voto) FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola GROUP BY Città HAVING Avg(Voto) >= 80
- La classifica della media dei voti per città
SELECT Città, AVG(Voto) FROM STUDENTE INNER JOIN DIPLOMATO ON STUDENTE.Matricola = DIPLOMATO.Matricola GROUP BY Città ORDER BY Avg(Voto) DESC