Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoErmete Sacco Modificato 10 anni fa
1
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/
2
Esercizio 1 Scrivere il codice SQL dello schema CodiceAutoreConferenzaAnnoFormatoPagine ARTICOLI Autore deve essere sempre definito. Conferenza e una stringa di lunghezza max 8. Formato e una stringa di lunghezza 3. Il numero di pagine deve essere sempre maggiore di 0, nel caso di omissione si assume pari ad 1.
3
Esercizio 1 CREATE TABLE ARTICOLI ( CODICE SMALLINT PRIMARY KEY, AUTORE VARCHAR(20) NOT NULL, CONFERENZA CHAR(8), FORMATO CHAR(3), ANNO DATE, PAGINE SMALLINT DEFAULT 1 CHECK (PAGINE>1) );
4
Esercizio 1 Scrivere il codice SQL dello schema NomeDataOrganizzatoreNumPartecipanti CONFERENZE Vincolo di integrita: ARTICOLO.{Conferenza, Data} CONFERENZA.{Nome, Data} Rimuovendo una conferenza da CONFERENZE, vengono rimossi anche gli articoli corrispondenti
5
Esercizio 1 CREATE TABLE CONFERENZE ( NOME VARCHAR(8), DATA DATE, ORGANIZZATORE VARCHAR(20), NUMPARTECIPANTI INTEGER CHECK (NUMPARTECIPANTI>0), PRIMARY KEY(NOME,DATA) );
6
Esercizio 1 CREATE TABLE ARTICOLI ( CODICE SMALLINT PRIMARY KEY, AUTORE VARCHAR(20) NOT NULL, CONFERENZA CHAR(8), FORMATO CHAR(3), DATA DATE, PAGINE SMALLINT DEFAULT 1 CHECK (PAGINE>1) FOREIGN KEY (CONFERENZA,DATA) REFERENCES CONFERENZE(NOME, DATA) ON DELETE CASCADE );
7
Esercizio 1 Scrivere il codice SQL dello schema NomeConfDataConfNomeCognomeRuolo PARTECIPANTE Vincolo di integrita: PARTECIPANTE.{NomeConf, DataConf} CONFERENZA.{Nome, Data} Ogni aggiornamento di {Nome, Data} nella relazione CONFERENZA viene propagato anche alla relazione PARTECIPANTE.
8
Esercizio 1 CREATE TABLE PARTECIPANTE ( NOMECONF CHAR(8), DATACONF DATE, NOME VARCHAR(20), COGNOME VARCHAR(30), RUOLO CHARACTER(3), PRIMARY KEY (NOMECONF,DATACONF, NOME, COGNOME) FOREIGN KEY (NOMECONF,DATACONF) REFERENCES CONFERENZE(NOME, DATA) ON UPDATE CASCADE );
9
Esercizio 2 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) Societa(Nome, Sede, Anno, NumeroTrofei) Scrivere la query SQL che determina: 1. Le righe della tabella ATLETA che si riferiscono ad atleti il cui nome inizia per M oppure non e specificato.
10
Esercizio 2 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) Societa(Nome, Sede, Anno, NumeroTrofei) Scrivere la query SQL che determina: 2. Tutti i codici delle gare di Atletica cui partecipano atleti della societa Borgorosso.
11
Esercizio 2 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) Societa(Nome, Sede, Anno, NumeroTrofei) Scrivere la query SQL che determina: 3. Tutti i nomi/cognomi degli atleti che partecipano ad almeno due gare.
12
Esercizio 2 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) Societa(Nome, Sede, Anno, NumeroTrofei) Scrivere la query SQL che determina: 4. Il numero totale di Discipline cui ha partecipato latleta 234 nella Gara identificata dal codice 12.
13
Esercizio 2 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) Societa(Nome, Sede, Anno, NumeroTrofei) Scrivere la query SQL che determina: 5. Per ogni societa, il numero totale di gare vinte.
14
Esercizio 2 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) Societa(Nome, Sede, Anno, NumeroTrofei, Presidente) Scrivere la query SQL che determina: 6. Il nome dei presidenti di societa che hanno vinto piu di 4 gare svolte in data 10/11/2012.
15
Esercizio 3 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Allenatore(Codice, Nome, Cognome, Profilo, Societa) Preparazione(CodiceAtleta, CodiceAllenatore) Societa(Nome, Sede, Anno, NumeroTrofei, Presidente) Sportivi(Nome, Cognome, Societa) Scrivere la query SQL che: 1. Popola la tabella Sportivi(Nome, Cognome, Societa) come insieme di tutti gli atleti ed allenatori presenti nello schema.
16
Esercizio 3 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Allenatore(Codice, Nome, Cognome, Profilo, Societa) Preparazione(CodiceAtleta, CodiceAllenatore) Societa(Nome, Sede, Anno, NumeroTrofei, Presidente) Scrivere la query SQL che: 2. Aggiorna i dati degli Atleti nati in data 10/11/2012, settando il nuovo valore della societa a Polisportiva Rossi.
17
Esercizio 3 Dato il seguente schema: Atleta(Codice, Nome, Cognome, DataNascita, Societa) Allenatore(Codice, Nome, Cognome, Profilo, Societa) Preparazione(CodiceAtleta, CodiceAllenatore) Societa(Nome, Sede, Anno, NumeroTrofei, Presidente) Scrivere la query SQL che: 3. Rimuove tutti gli allenatori la cui societa di appartenenza non e specificata.
18
Esercizio 4 Dato il seguente schema: Persona(Nome, DataNascita, CittaNascita, CodiceFiscale) Discendenza(Figlio, Padre) Matrimonio (Marito, Moglie, Citta, Data) Scrivere la query SQL che determina: 1. Il numero di persone nate a Bologna nellanno 1985.
19
Esercizio 4 Dato il seguente schema: Persona(Nome, AnnoNascita, CittaNascita, CodiceFiscale) Discendenza(Figlio, Padre) Matrimonio (Marito, Moglie, Citta, Anno) Scrivere la query SQL che determina: 2. Il totale di matrimoni svolti ogni anno a Bologna.
20
Esercizio 4 Dato il seguente schema: Persona(Nome, AnnoNascita, CittaNascita, CodiceFiscale) Discendenza(Figlio, Padre) Matrimonio (Marito, Moglie, Citta, Anno) Scrivere la query SQL che determina: 3. Il numero di persone che si chiamano Michele e non hanno figli.
21
Esercizio 5 Dato il seguente schema: FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere) PROIEZIONI (CodProiezione, CodFilm, CodSala, Incasso, DataProiezione) SALE (CodSala, Posti, Nome, Città) Scrivere la query SQL che determina: 1. Per ogni citta, il numero di sale con piu di 60 posti.
22
Esercizio 5 Dato il seguente schema: FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere) PROIEZIONI (CodProiezione, CodFilm, CodSala, Incasso, DataProiezione) SALE (CodSala, Posti, Nome, Città) Scrivere la query SQL che determina: 2. Il numero totale dei posti dei cinema di Bologna.
23
Esercizio 5 Dato il seguente schema: FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere) PROIEZIONI (CodProiezione, CodFilm, CodSala, Incasso, DataProiezione) SALE (CodSala, Posti, Nome, Città) Scrivere la query SQL che determina: 3. Per ogni regista, la somma totale degli incassi totalizzati dai suoi film.
24
Esercizio 5 Dato il seguente schema: FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere) PROIEZIONI (CodProiezione, CodFilm, CodSala, Incasso, DataProiezione) SALE (CodSala, Posti, Nome, Città) Scrivere la query SQL che determina: 4. Per ogni citta, gli incassi di film Italiani proietattati in data 10/11/2012.
25
Esercizio 5 Dato il seguente schema: AEROPORTO(Citta, Nazione, NumPiste) VOLO(IdVolo, GiornoSett, CittaPart, CittaArr, TipoAereo, OraPartenza, OraArrivo) AEREO(TipoAereo, NumPasseggeri, QtaMerci) Scrivere la query SQL che determina: 1. Le citta con un aeroporto di cui non e noto il numero di piste.
26
Esercizio 5 Dato il seguente schema: AEROPORTO(Citta, Nazione, NumPiste) VOLO(IdVolo, GiornoSett, CittaPart, CittaArr, TipoAereo, OraPartenza, OraArrivo) AEREO(TipoAereo, NumPasseggeri, QtaMerci) Scrivere la query SQL che determina: 2. Le nazioni da cui parte ed arriva il volo con codice AZ1343.
27
Esercizio 5 Dato il seguente schema: AEROPORTO(Citta, Nazione, NumPiste) VOLO(IdVolo, GiornoSett, CittaPart, CittaArr, TipoAereo, OraPartenza, OraArrivo) AEREO(TipoAereo, NumPasseggeri, QtaMerci) Scrivere la query SQL che determina: 3. I tipi di aereo usati nei voli che partono da Torino.
28
Esercizio 5 Dato il seguente schema: AEROPORTO(Citta, Nazione, NumPiste) VOLO(IdVolo, GiornoSett, CittaPart, CittaArr, TipoAereo, OraPartenza, OraArrivo) AEREO(TipoAereo, NumPasseggeri, QtaMerci) Scrivere la query SQL che determina: 4. Il numero di voli internazionali che partono da Napoli.
29
Esercizio 5 Dato il seguente schema: AEROPORTO(Citta, Nazione, NumPiste) VOLO(IdVolo, GiornoSett, CittaPart, CittaArr, TipoAereo, OraPartenza, OraArrivo) AEREO(TipoAereo, NumPasseggeri, QtaMerci) Scrivere la query SQL che determina: 5. La quantita totale di merci trasportata da aerei che partono ogni giovedi da Napoli e diretti in aeroporti italiani.
30
Esercizio 5 Dato il seguente schema: AEROPORTO(Citta, Nazione, NumPiste) VOLO(IdVolo, GiornoSett, CittaPart, CittaArr, TipoAereo, OraPartenza, OraArrivo) AEREO(TipoAereo, NumPasseggeri, QtaMerci) Scrivere la query SQL che determina: 6. Le citta francesi da cui partono piu di venti voli alla settimana diretti per lItalia.
31
Esercizio 5 Dato il seguente schema: AEROPORTO(Citta, Nazione, NumPiste) VOLO(IdVolo, GiornoSett, CittaPart, CittaArr, TipoAereo, OraPartenza, OraArrivo) AEREO(TipoAereo, NumPasseggeri, QtaMerci) Scrivere la query SQL che determina: 6. Le citta servite dallaereo con numero minimo di passeggeri.
32
Esercizio 5 Dato il seguente schema: AEROPORTO(Citta, Nazione, NumPiste) VOLO(IdVolo, GiornoSett, CittaPart, CittaArr, TipoAereo, OraPartenza, OraArrivo) AEREO(TipoAereo, NumPasseggeri, QtaMerci) Scrivere la query SQL che determina: 7. Il massimo numero di passeggeri che possono arrivare dalla Francia in Italia il giovedi.
33
Esercizio 6 Dato il seguente schema: NEGOZI(IdNegozio, Nome, Citta) PRODOTTI(CodProdotto, NomeProdotto, Marca) LISTINO(Negozio, CodProdotto, Prezzo) FORNITORE(Codice, Nome, Cognome, Sede) RIFORNIMENTO(CodiceFornitore,Negozio) Scrivere la query SQL che determina: 1. Lid dei negozi che vendono il prodotto con codice 123 ad un prezzo superiore alla media (calcolata sui listini di tutti i negozi).
34
Esercizio 6 Dato il seguente schema: NEGOZI(IdNegozio, Nome, Citta) PRODOTTI(CodProdotto, NomeProdotto, Marca) LISTINO(Negozio, CodProdotto, Prezzo) FORNITORE(Codice, Nome, Cognome, Sede) RIFORNIMENTO(CodiceFornitore,Negozio) Scrivere la query SQL che determina: 2. Il codice dei prodotti venduti in una sola citta.
35
Esercizio 6 Dato il seguente schema: NEGOZI(IdNegozio, Nome, Citta) PRODOTTI(CodProdotto, NomeProdotto, Marca) LISTINO(Negozio, CodProdotto, Prezzo) FORNITORE(Codice, Nome, Cognome, Sede) RIFORNIMENTO(CodiceFornitore,Negozio) Scrivere la query SQL che determina: 3. La citta in cui viene venduto al prezzo + basso il prodotto con codice 123.
36
Esercizio 6 Dato il seguente schema: NEGOZI(IdNegozio, Nome, Citta) PRODOTTI(CodProdotto, NomeProdotto, Marca) LISTINO(Negozio, CodProdotto, Prezzo) FORNITORE(Codice, Nome, Cognome, Sede) RIFORNIMENTO(CodiceFornitore,Negozio) Scrivere la query SQL che determina: 4. Nome/Cognome dei fornitori che NON riforniscono alcun negozio di Bologna.
37
Esercizio 7 Dato il seguente schema: STADIO(Nome, Citta, Capienza) INCONTRO(NomeStadio, Data, Ora, Squadra1, Squadra2) NAZIONALE(Nazione, Continente, Livello) Scrivere la query SQL che determina: 1. La citta/le citta in cui si trova lo stadio in cui la squadra inglese gioca il maggior numero di partite.
38
Esercizio 7 Dato il seguente schema: STADIO(Nome, Citta, Capienza) INCONTRO(NomeStadio, Data, Ora, Squadra1, Squadra2) NAZIONALE(Nazione, Continente, Livello) Scrivere la query SQL che determina: 2. I nomi degli stadi in cui non gioca nessuna squadra europea.
39
Esercizio 7 Dato il seguente schema: STADIO(Nome, Citta, Capienza) INCONTRO(NomeStadio, Data, Ora, Squadra1, Squadra2) NAZIONALE(Nazione, Continente, Livello) Scrivere la query SQL che determina: 3. La capienza complessiva degli stadi in cui gioca una nazione europea.
40
Esercizio 7 Dato il seguente schema: STADIO(Nome, Citta, Capienza) INCONTRO(NomeStadio, Data, Ora, Squadra1, Squadra2) NAZIONALE(Nazione, Continente, Livello) Scrivere la query SQL che determina: 4. I nomi delle squadre che incontrano solo squadre dello stesso livello.
41
Esercizio 8 Dato il seguente schema: PROFESSORE(Codice, Nome, Cognome, Dipartimento, Qualifica, Stipendio) CORSO(CodiceCorso, CodiceProf, OreCorso) 0. Costruire il codice SQL dello schema, definendo i vincoli di chiave di ciascuna tabella e gli eventuali vincoli di integrita inter-relazionali esistenti. -Definire un dominio per CodiceCorso come: stringa, lunghezza 6 caratteri, la stringa deve iniziare per C e terminare per 00.
42
Esercizio 8 Dato il seguente schema: PROFESSORE(Codice, Nome, Cognome, Dipartimento, Qualifica, Stipendio) CORSO(CodiceCorso, CodiceProf, OreCorso) 0. Costruire il codice SQL dello schema, definendo i vincoli di chiave di ciascuna tabella e gli eventuali vincoli di integrita inter-relazionali esistenti. -Ogni aggiornamento del CodiceCorso della tabella CORSO deve essere propagato anche allattributo Codice della tabella PROFESSORE.
43
Esercizio 8 Dato il seguente schema: PROFESSORE(Codice, Nome, Cognome, Dipartimento, Qualifica, Stipendio) CORSO(CodiceCorso, CodiceProf, OreCorso) Definire il seguente vincolo sullo schema: 1. Ogni dipartimento deve avere almeno 30 professori, e lo stipendio medio in ogni dipartimento deve essere inferiore a 25000 euro.
44
Esercizio 8 Dato il seguente schema: PROFESSORE(Codice, Nome, Cognome, Dipartimento, Qualifica, Stipendio) CORSO(CodiceCorso, CodiceProf, OreCorso) Definire il seguente vincolo sullo schema: 2. I professori ordinari dovrebbero insegnare per almeno 120 ore, mentre i ricercatori non dovrebbero superare le 60 ore di lezione.
45
Esercizio 8 Dato il seguente schema: PROFESSORE(Codice, Nome, Cognome, Dipartimento, Qualifica, Stipendio) CORSO(CodiceCorso, CodiceProf, OreCorso) Definire il seguente vincolo sullo schema: 3. Ogni volta che si rimuove una riga dalla tabella PROFESSORI, se il totale dei Professori diventa minore di 20 per il dipartimento di Informatica, devono essere rimossi tutti i CORSI tenuti da professori di Informatica.
46
Esercizio 8 Dato il seguente schema: PROFESSORE(Codice, Nome, Cognome, Dipartimento, Qualifica, Stipendio) CORSO(CodiceCorso, CodiceProf, OreCorso) Definire il seguente vincolo sullo schema: 4. Definire una vista DIPARTIMENTIARISCHIO(Dipartimento, MonteOre), definita come linsieme dei dipartimenti in cui il totale delle ore di lezione svolte da docenti di quel dipartimento sia inferiore a 400.
47
Esercizio 8 Dato il seguente schema: ATLETA(Nome, Nazione, Eta) PARTECIPAZIONE(NomeAtleta, NomeGara, Piazzamento) GARA(Nome, Nazione) Scrivere la query SQL che determina: 1. Il nome degli atleti che hanno gareggiato solo nella propria nazione.
48
Esercizio 8 Dato il seguente schema: ATLETA(Nome, Nazione, Eta) PARTECIPAZIONE(NomeAtleta, NomeGara, Piazzamento) GARA(Nome, Nazione) Scrivere la query SQL che determina: 2. Il nome degli atleti che provengono da una nazione in cui non si svolge alcuna gara.
49
Esercizio 8 Dato il seguente schema: ATLETA(Nome, Nazione, Eta) PARTECIPAZIONE(NomeAtleta, NomeGara, Piazzamento) GARA(Nome, Nazione) Scrivere la query SQL che determina: 3. Il nome degli atleti che hanno preso parte a tutte le gare svolte in Francia.
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.