Che materia stai cercando?

Gestione dati e archivi - Esercizi SQL Appunti scolastici Premium

Esercitaziome per l'esame di gestione dati e archivi, professor Gentile, corso di laurea in scienze della comunicazione. Il documento presenta una serie di quesiti relativi a una base di dati costruita in SQL, con relativi calcoli da fare, o individuazione di query non corrette.

Esame di Gestione dati e archivi docente Prof. C. Gentile

Anteprima

ESTRATTO DOCUMENTO

• CORSI_ACQUA(NomeF,Lunghezza, Profondita_media)

• COMUNI(NomeC, Regione, Popolazione)

CORSI_ACQUA COMUNI

,NomeC )

• BAGNA(NomeF

Determinare i nomi dei comuni lombardi, con popolazione maggiore di

500000 abitanti, percorsi da almeno un corso d’acqua.

SELECT DISTINCT NomeC

FROM BAGNA, COMUNI

WHERE COMUNI.NomeC=BAGNA.NomeC

AND Regione=‘Lombardia’

AND Popolazione> 500000;

• CORSI_ACQUA(NomeF,Lunghezza, Profondita_media)

• COMUNI(NomeC, Regione, Popolazione)

CORSI_ACQUA COMUNI

• BAGNA(NomeF ,NomeC )

Determinare i nomi dei fiumi con lunghezza

compresa tra 20 e 30 Km che attraversano almeno

un comune in Liguria

SELECT CORSI_ACQUA.NomeF

FROM CORSI_ACQUA, BAGNA, COMUNI

WHERE CORSI_ACQUA.NomeF=BAGNA.NomeF

AND COMUNI.NomeC=BAGNA.NomeC

AND Regione=‘Liguria’

AND Lunghezza BETWEEN 20 AND 30; 4

• CORSI_ACQUA(NomeF,Lunghezza, Profondita_media)

• COMUNI(NomeC, Regione, Popolazione)

CORSI_ACQUA COMUNI

• BAGNA(NomeF ,NomeC )

• Determinare i nomi dei comuni che non sono percorsi da alcun corso d’acqua

con lunghezza inferiore ai 3 Km

SELECT DISTINCT COMUNI.NomeC

FROM COMUNI, BAGNA

WHERE COMUNI.NomeC=BAGNA.NomeC

AND NomeF NOT IN (SELECT NomeF FROM CORSI_ACQUA WHERE Lunghezza<3);

oppure

SELECT DISTINCT COMUNI.NomeC

FROM COMUNI, BAGNA

WHERE COMUNI.NomeC=BAGNA.NomeC

AND NomeF IN (SELECT NomeF FROM CORSI_ACQUA WHERE Lunghezza>=3);

• Quadro(Nome,Anno,periodo,id-museo,autore)

• Pittore(CF,Nome,Cognome,Nazionalità,Anno-di-nascita)

• Museo(Id,Nome,Annodicostruzione,Città,Nazione,Cognomedirettore)

1) Determinare i nomi di tutti i quadri dipinti da Salvator Dalì

2) Determinare i nomi dei musei che espongono quadri di De

Chirico 5

• Pittore(CF,Nome,Cognome,Nazionalità,Anno-di-nascita)

• Museo(Id,Nome,Annodicostruzione,Città,Nazione,Cognomedirettore)

Museo Pittore

• Quadro(Nome,Anno,periodo,id-museo ,autore )

• La relazione Pittore contiene informazioni relative ai pittori (i.e., codice

fiscale, nome, cognome, nazionalità e anno di nascita): chiave primaria è

codice fiscale

• La relazione Museo contiene informazioni relative ai musei (i.e.,

codice, nome, anno di costruzione, città, nazione e cognome del

direttore): Id, ovvero il codice del museo, è chiave primaria della

relazione

• La relazione Quadro contiene informazioni relative ai quadri (i.e., nome

del quadro, anno di realizzazione, periodo artistico): chiave primaria la

coppia nome del quadro e autore, dove autore è chiave esterna dalla

relazione Pittore. Inoltre id-museo è chiave esterna da Museo

• Pittore(CF,Nome,Cognome,Nazionalità,Anno-di-nascita)

• Museo(Id,Nome,Annodicostruzione,Città,Nazione,Cognomedirettore)

Museo Pittore

• Quadro(Nome,Anno,periodo,id-museo ,autore )

1) Determinare i nomi di tutti i quadri dipinti da Salvator Dalì

SELECT Quadro.Nome

FROM Quadro, Pittore

WHERE Quadro.autore= Pittore.CF AND

Pittore.Nome=‘Salvator’ AND Cognome=‘Dalì’; 6

• Pittore(CF,Nome,Cognome,Nazionalità,Anno-di-nascita)

• Museo(Id,Nome,Annodicostruzione,Città,Nazione,Cognomedirettore)

Museo Pittore

• Quadro(Nome,Anno,periodo,id-museo ,autore )

2) Determinare i nomi dei musei che espongono quadri

di De Chirico

SELECT Museo.Nome

FROM Quadro, Pittore, Museo

WHERE Quadro.autore= Pittore.CF

AND Quadro.id-museo=Museo.id

AND Pittore.Cognome=‘De Chirico’;

STUDENTI (Matricola, Nome, Cognome, Sesso, Diploma, Età)

Nome, Dipartimento, OrarioRicevimento)

PROFESSORI (CodiceProf, PROFESSORI

CORSI (Nome, Periodo, Aula, CodiceProf )

STUDENTI CORSI

, Corso )

PIANI_DI_STUDIO (Matricola

• La relazione STUDENTI contiene informazioni relative agli studenti di una

università (i.e., matricola, nome, cognome, sesso, diploma ed eta). Chiave

primaria è la matricola

• La relazione PROFESSORI contiene informazioni relative ai professori di

una università (i.e., codice, nome, cognome, dipartimento, orario

ricevimento). Chiave primaria è il codice del professore

• La relazione CORSI contiene informazioni relative ai corsi erogati

dall’università (i.e., nome del corso, periodo, aula e codice del professore).

Chiave primaria è il codice del corso, mentre CodiceProf è chiave esterna da

PROFESSORI

• La relazione PIANI_DI_STUDIO contiene informazioni relative ai piani di

studio degli studenti (i.e., matricola dello studente e codice del corso

selezionato). Chiave primaria è la coppia Matricola (matricola studente) e

Corso (i.e., codice del corso), dove Matricola è chiave esterna da

STUDENTI e Corso è chiave esterna da CORSI 7

STUDENTI (Matricola, Nome, Cognome, Sesso, Diploma, Età)

PROFESSORI (CodiceProf, Nome, Dipartimento, OrarioRicevimento)

PROFESSORI

CORSI (Nome, Periodo, Aula, CodiceProf )

STUDENTI CORSI

PIANI_DI_STUDIO (Matricola , Corso )

Trovare il numero di studenti che hanno nel piano di

studi il corso di Basi di dati

SELECT COUNT(*)

FROM PIANI_DI_STUDIO

WHERE Corso = 'Basi di dati';

STUDENTI (Matricola, Nome, Cognome, Sesso, Diploma, Età)

PROFESSORI (CodiceProf, Nome, Dipartimento, OrarioRicevimento)

PROFESSORI

CORSI (Nome, Periodo, Aula, CodiceProf )

STUDENTI CORSI

PIANI_DI_STUDIO (Matricola , Corso )

Trovare il nome dello studente più giovane

SELECT Nome

FROM STUDENTI

WHERE Età = (SELECT MIN(Età)

FROM STUDENTI); 8

• Dati gli schemi

Customers(cid, cname, city)

Agents(aid, aname, city)

Products(pid, pname, city, quantity,price)

Orders(ordnum, cid, aid, pid, qty, cost)

• Calcolare, per ogni tipo di prodotto, il

numero di pezzi venduti

SELECT pid, SUM(qty) AS total

FROM orders

GROUP BY pid;

• La seguente query non è corretta.

Perchè?

SELECT pid, cid, SUM(qty) AS total

FROM orders

GROUP BY pid;

• La funzione SUM calcola un singolo valore per ogni

gruppo. E’ necessario che ogni attributo nella

SELECT abbia valore univoco. In questo caso,

l’attributo cid non verifica questa condizione.

• Bisogna escludere per forza cid? 9

• No. Basta includere cid nel GROUP BY:

SELECT pid, cid, SUM(qty) AS total

FROM orders

GROUP BY pid, cid;

Calcola per ogni prodotto il numero di pezzi venduti per

cliente

• La query seguente è sintatticamente

corretta?

SELECT pid, SUM(qty)

FROM orders

WHERE sum(qty)>1000

GROUP BY pid;

• No. La funzione di aggregazione SUM non

può apparire nella clausola WHERE. Inoltre,

la condizione espressa nel WHERE elimina

tuple prima che il GROUP BY faccia il

partizionamento… 10


PAGINE

17

PESO

58.68 KB

AUTORE

Menzo

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in scienze della comunicazione
SSD:
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Menzo di informazioni apprese con la frequenza delle lezioni di Gestione dati e archivi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Insubria Como Varese - Uninsubria o del prof Gentile Claudio.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Gestione dati e archivi

Gestione dati e archivi - progettazione di basi di dati / metodologie e modelli
Appunto
Esame luglio 2006
Esercitazione
Esame giugno 2006
Esercitazione
Esame settembre 2006
Esercitazione