BASE DI DATI. Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione. Informatica Umanistica Università di Pisa

Documenti analoghi
SQL: definizione schema

Esercitazione su SQL

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Corso di Basi di Dati

Data management a.a Il linguaggio SQL

Basi di dati II prova intermedia 16 Marzo 2006 Compito 1

Esercitazione SQL. Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica

Interrogazioni complesse. SQL avanzato 1

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Squadra Giocatore Partita Goal Ingresso Ingresso SELECT FROM WHERE AND AND SELECT FROM WHERE AND AND AND AND SELECT FROM WHERE AND AND

MAX, SUM, AVG, COUNT)

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Corso di Basi di Dati A.A. 2014/2015

a) Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto.

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Esempio di database relazionale con l utilizzo del prodotto MySQL

Modello concettuale dei dati. Paolo Brunasti - UniMiB 1 / 12

UTENTE (Codice, Nome, Cognome, Indirizzo, Telefono) PRESTITO (Collocazione, CodUtente, DataPrestito, DataRest)

DATABASE PER IL WEB. Programmazione Web 1

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

SQL (STRUCTURED QUERY LANGUAGE)

Corso di Laboratorio di Basi di Dati

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

DBMS (Data Base Management System)

1 Database universitario 1.1 Elenco tabelle PERSONA (ID, is_studente, is_docente, nome, cognome) STUDENTE (matricola, persona references persona(id))

Basi di Dati Corso di Laura in Informatica Umanistica

Istruzioni DML di SQL

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m

CONCETTO DI ANNIDAMENTO

Vogliamo creare una anagrafe e poi creare delle query che rispondono a delle domandi. Utilizzando Microsoft Access

CAPITOLO 4 ESERCIZI SU SQL

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Prova scritta. Mercoledì 23 Luglio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

MEZZI CodM Tipo Targa AnnoI Assicurato

Esercizi SQL. Dato il seguente schema di una base di dati dove gli attributi che compongono la chiave sono scritti in grassetto

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Dal modello concettuale al modello logico

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

Eserciziario SQL. Costantino, Luca, Santoro, Marchese. 29 aprile Utilizzando le relazioni Comune e Terremoto, risolvete le seguenti query SQL

SQL - Funzioni di gruppo

Prova scritta. Giovedì 02 Ottobre Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Esercizio 1. Cognome e nome:... Matricola:...

Prova Scritta di Basi di Dati

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Prova scritta. Mercoledì 11 Febbraio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

ESAME di INFORMATICA e ARCHIVIAZIONE

Gli operatori relazionali

SQL IL LINGUAGGIO DI INTERROGAZIONE

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

1. Per ogni film in cui appaiono solo attori nati prima del 1970 restituire il titolo del film.

Basi di Dati. S Q L Lezione 5

SQL. DDL e vincoli. Basi di Dati 1 Esercitazione 4. Matteo Picozzi {picozzi@elet.polimi.it}

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

2a descrivere i materiali

Volumi di riferimento

PROGRAMMA DI CLASSE 5AI

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m

Prova Scritta di Basi di Dati

cliente... nuovo cliente trasloco

Elaborazione Automatica dei Dati. SQL come Query Language. Enrico Cavalli. Anno Accademico Il linguaggio SQL

Compito Basi di Dati. Tempo concesso: 90 minuti 08 Giugno 2006 Nome: Cognome: Matricola:

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

2011 Politecnico di Torino 1

(a) Trovare le informazioni dei viaggi di durata inferiore ai 15 giorni select * from Viaggio where Durata <15

Compito Basi di Dati. Tempo concesso: 90 minuti 18 Gennaio 2007 Nome: Cognome: Matricola:

Esercitazione 28 Gennaio 2013

Il linguaggio SQL: viste e tabelle derivate

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/ febbraio A

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Basi di dati Appello del Compito A

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Basi di Dati Esercitazione per la II prova intermedia 2013

SQL/OLAP. Estensioni OLAP in SQL

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1

La progettazione di un database non ha un unica soluzione. Quella proposta può essere quindi variata in base all esperienza del programmatore.

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Basi di Dati e Sistemi Informativi. SQL come linguaggio di manipolazione dei dati

Esame Basi di Dati. 21 Gennaio 2013

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

ESAME di INFORMATICA e ARCHIVIAZIONE

Il linguaggio SQL. ing. Alfredo Cozzi 1

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

REGOLAMENTO FANTALEGA DEI CAMPIONI

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data la seguente tabella :

A.S. 2014/2015- Programma svolto di INFORMATICA ITCG E. Fermi Tivoli classe V C SIA. Programma svolto di. Informatica. classe VC S.I.A a.s.

Transcript:

BASE DI DATI Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione Informatica Umanistica Università di Pisa

Testo: campionato di calcio italiano del 2015/2016 Lo schema della base di dati relazionale usata da tale programma è organizzato come segue. La chiave primaria di ogni relazione è sottolineata. Il carattere * indica che c è un vincolo di integrità referenziale. Squadre (CodiceSquadra, NomeSquadra, AnnoFondazione, Regione) Supponiamo che ogni allenatore e ogni giocatore può essere assegnato ad una sola squadra. La relazione Persone descrive l anagrafe di tutte le persone, includendo l allenatore e i giocatori di ciascuna squadra, ma anche arbitri, ecc. Il campo cittanascita può avere valori nulli. La relazione Squadre descrive i dettagli di ciascuna squadra, includendo il nome, l anno di fondazione e la regione. La relazione Allenatori descrive per ogni squadra la matricola dell allenatore. La relazione Giocatori descrive tutti i giocatori di ciascuna squadra. In particolare, ruolo può essere "A" (attaccante), "D" (difensore), "P" (portiere), ecc., mentre NumeroReti è il numero dei gol effettuati da ciascun giocatore. La relazione Partita descrive il calendario delle partite, dove la chiave primaria è formata dalla coppia SquadraInCasa, SquadraFuoriCasa. Esercitazione: concetti avanzati SQL 2

Domanda 1 Visualizzare la media dei redditi dei giocatori della squadra con codice "P1". Rinominare la colonna con la frase Media Redditi. select avg(redditoannuo) as "media redditi" from giocatori, persone where CODICESQUADRA='P1' and giocatori.matricola=persone.matricola Esercitazione: concetti avanzati SQL 3

Domanda 2 Visualizzare la media dei redditi dei giocatori per ciascuna squadra. Visualizzare anche il codice della squadra e il numero di giocatori di ciascuna squadra. Ordinare i risultati secondo il codice della squadra. Rinominare la media dei redditi con la dicitura media reddito e il numero di giocatori con la dicitura Numero giocatori. select CODICESQUADRA, avg(redditoannuo) as "media reddito", count(*) as "Numero giocatori" from giocatori, persone where giocatori.matricola=persone.matricola group by CODICESQUADRA order by CODICESQUADRA Esercitazione: concetti avanzati SQL 4

Domanda 3 Visualizzare il nome, il cognome e il nome della squadra del giocatore che ha effettuato il numero massimo di gol. Rinominare il numero dei gol con la dicitura "max numero gol". select nomesquadra, nome, cognome, NUMERORETI as "max numero gol" from giocatori, persone, squadre where persone.matricola = giocatori.matricola and giocatori.codicesquadra=squadre.codicesquadra and numeroreti = ( select max(numeroreti) from giocatori ) Esercitazione: concetti avanzati SQL 5

Domanda 4 Visualizzare i dettagli delle persone che sono allenatori o giocatori. Nota che nella tabella Persone potrebbero esserci persone che non sono nè allenatori nè giocatori, ad esempio arbitri (utilizzare le select annidate) select * from persone where matricola = ANY (select matricola from allenatori) OR matricola = ANY (select matricola from giocatori) L operatore = ANY può essere sostituito da IN Esercitazione: concetti avanzati SQL 6

Domanda 5 Soluzione con 2 join + 1 select annidata Il nome degli allenatori per cui almeno un giocatore in squadra guadagna più di 150.000 euro (usare le select annidate). SELECT Nome FROM Persone, allenatori WHERE persone.matricola=allenatori.matricola and Equivalente a IN allenatori.codicesquadra = any (SELECT CODICESQUADRA FROM giocatori, persone WHERE giocatori.matricola = persone.matricola AND REDDITOANNUO > 150000) Esercitazione: concetti avanzati SQL 7

Domanda 5 Soluzione con 1 join + 2 select annidate Il nome degli allenatori per cui almeno un giocatore in squadra guardagna più di 150.000 euro (usare le select annidate). Persone che guadagnano Persone più di 150.000 euro Persone che sono allenatori Allenatori Giocatori Giocatori che guadagnano più di 150.000 euro Giocatori che guadagnano meno di 150.000 euro Esercitazione: concetti avanzati SQL 8

Domanda 5 Soluzione con 1 join + 2 select annidate Osservazioni Il nome degli allenatori per cui almeno un giocatore in squadra guardagna più di 150.000 euro. Persone Persone che guadagnano più di 150.000 euro Persone che sono allenatori Allenatori Giocatori Giocatori che guadagnano più di 150.000 euro 1. Trovare le persone che sono allenatori 2. Trovare le squadre per cui almeno un giocatore guadagna più di 150000 euro 3. E adesso? Giocatori che guadagnano meno di 150.000 euro Esercitazione: concetti avanzati SQL 9

Domanda 5 Soluzione con 1 join + 2 select annidate Parte I Il nome degli allenatori (join) Persone che sono allenatori Allenatori Persone SELECT Nome FROM Persone, allenatori WHERE persone.matricola=allenatori.matricola Esercitazione: concetti avanzati SQL 10

Domanda 5 Soluzione con 1 join + 2 select annidate Parte II Il codice della quadra per cui almeno un giocatore guardagna più di 150.000 euro (usare le select annidate). Persone Giocatori Persone che guadagnano più di 150.000 euro Giocatori che guadagnano più di 150.000 euro SELECT CODICESQUADRA FROM giocatori WHERE giocatori.matricola = any SELECT MATRICOLA FROM Persone WHERE REDDITOANNUO > 150000)) Giocatori che guadagnano meno di 150.000 euro Esercitazione: concetti avanzati SQL 11

Domanda 5 Soluzione con 1 join + 2 select annidate Parte III Il nome degli allenatori per cui almeno un giocatore in squadra guardagna più di 150.000 euro (usare le select annidate). SELECT Nome FROM Persone, allenatori WHERE persone.matricola=allenatori.matricola and allenatori.codicesquadra IN (SELECT CODICESQUADRA FROM giocatori WHERE giocatori.matricola = any (SELECT MATRICOLA FROM Persone WHERE REDDITOANNUO > 150000)) Esercitazione: concetti avanzati SQL 12

Domanda 6 Il codice della squadra e il numero di matricola dell allenatore per cui tutti i giocatori di tale squadra guardagnano meno di 150000 euro (usare le select annidate). Persone che guadagnano Persone che sono Persone più di 150.000 euro allenatori 1. Trovare le persone che sono allenatori 2. Trovare le squadre per cui tutti i giocatori guadagna più di 150000 euro 3. E adesso? Allenatori Giocatori Giocatori che guadagnano più di 150.000 euro Giocatori che guadagnano meno di 150.000 euro Esercitazione: concetti avanzati SQL 13

Domanda 6 - Soluzione Il codice della squadra e il numero di matricola dell allenatore per cui tutti i giocatori di tale squadra guardagnano meno di 150000 euro (usare le select annidate). SELECT matricola, CODICESQUADRA FROM allenatori WHERE CODICESQUADRA <> all ( SELECT CODICESQUADRA FROM giocatori, Persone WHERE giocatori.matricola = Persone.MATRICOLA AND REDDITOANNUO > 150000) Esercitazione: concetti avanzati SQL 14

Domanda 7 Trovare il codice e il nome delle squadre i cui giocatori "attaccanti" (quindi Ruolo = A ) hanno realizzato più gol del numero medio di gol fatti da tutti i giocatori di tutte le squadre. Visualizzare il CODICE e il NOME della SQUADRA, la matricola, il nome, il cognome del giocatore e il NUMERO delle RETI. Select giocatori.codicesquadra, NOMESQUADRA from squadre, giocatori, persone where squadre.codicesquadra = giocatori.codicesquadra AND giocatori.matricola=persone.matricola AND ruolo = 'A' AND NUMERORETI > (SELECT avg(numeroreti) FROM giocatori) Esercitazione: concetti avanzati SQL 15

Domanda 8 Visualizzare il codice della squadra e il numero di gol fatti da ogni squadra Select codicesquadra, sum(numeroreti) from giocatori Group by codicesquadra Esercitazione: concetti avanzati SQL 16

Domanda 9 Visualizzare il nome della squadra, il codice della squadra e il numero di gol fatti da ogni squadra Select NomeSquadra, giocatori.codicesquadra, sum(numeroreti) from squadre, giocatori where squadre.codicesquadra = giocatori.codicesquadra Group by codicesquadra, NomeSquadra Esercitazione: concetti avanzati SQL 17

Domanda 10 Visualizzare il codice della squadra e il numero di gol fatti da ogni squadra solo se il numero di gol fatti è maggiore di 20 Select codicesquadra, sum(numeroreti) from giocatori Group by codicesquadra Having sum(numeroreti) > 20 Esercitazione: concetti avanzati SQL 18