Basi di Dati. Esercitazione SQL. Paolo Papotti. 19 maggio 2005

Documenti analoghi
formulare in SQL una interrogazione per ciascuno dei seguenti punti:

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

Basi di Dati. Esercitazione Algebra Relazionale. 16 maggio 2008

ed SQL 10 Novembre 2009

Business Intelligence

Utilizzando per la connessione al database un driver di Tipo 1:

ESERCITAZIONE 4 Giovedì 13 novembre 2014 (3 ore) SQL

3. Selezionare i nomi dei clienti che iniziano con le lettere P, Q, R, S

Basi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

Basi di dati I Prova di autovalutazione 30 ottobre 2014

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

SQL terza parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2010/11

Esercitazione 1 Algebra relazionale

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Basi di Dati Esercitazione JDBC. Giugno 2007

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Estensioni del linguaggio SQL per interrogazioni OLAP

Basi di dati: appello 14/07/06

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Structured Query Language

Basi di dati: appello 04/07/06

Idoneita Informatica. Sistemi per la gestione di basi di Dati

Esercitazione 3 SQL.

Operatori aggregati: COUNT

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Interrogazioni semplici

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

Linguaggio SQL seconda parte

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

Interrogazioni in SQL

Interrogare una base di dati: Algebra relazionale e SQL. Alessandro Bardine Alessandro Ciaramella Vincenzo Galella Rudy Manganelli

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna laura sicuro rimini 1984 esami codice

S Q L E S E R C I Z I

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Esercitazione 3 SQL 2

Tipi di sottoquery SQL

SELECT FROM ORDER BY SELECT FROM ORDER BY DESC DESC SELECT FROM ORDER BY DESC DESC SELECT FROM WHERE SELECT FROM WHERE AND SELECT FROM WHERE AND

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati: Corso di laboratorio

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Basi di dati: appello 07/02/06

Tabelle esempio: Impiegato/Dipartimento

ESERCIZI INTERROGAZIONI SQL

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base

Basi di Dati DBDMG - Politecnico di Torino Esercizi di SQL

Esercizi su SQL. Basi di Dati A.A. 2009/2010 Docente: Prof. Ing. Giorgio Giacinto. Ing. Roberto Tronci.

Basi di Dati Esempi di SQL

SQL - Structured Query Language

Introduzione alle basi di dati

Basi di Dati. S Q L Lezione 4

PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Esempi SQL con Access. Orazio Battaglia

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

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Basi di Dati Esempi di SQL

Corso di Basi di Dati

ESAME di INFORMATICA e ARCHIVIAZIONE

Data Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003

SQL Laboratorio di Basi di Dati a.a. 2002/2003

σ data 15/12/2013 data 20/12/2014

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

Laura Farinetti - DAUIN Politecnico di Torino. Sia dato lo schema relazionale costituito dalle tabelle (le chiavi primarie sono sottolineate)

Lezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna Pag.1

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL

SQL e algebra relazionale

Esame di Basi di Dati SOLUZIONE APPELLO 14/06/2011

Laura Farinetti - DAUIN Politecnico di Torino. Sia dato lo schema relazionale costituito dalle tabelle (le chiavi primarie sono sottolineate)

Concettuale. Giuseppe Amato

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

Esercitazione su SQL

Basi di Dati: Corso di laboratorio

Laura Farinetti - DAUIN Politecnico di Torino. Sia dato lo schema relazionale costituito dalle tabelle (le chiavi primarie sono sottolineate)

b) Si scrivano le interrogazioni SQL che restituiscono le seguenti informazioni, senza duplicazione dei risultati:

Interrogazioni nidificate

Basi di dati: appello 08/03/06

BD: prima prova di verifica del 5/11/2012

Esercizi proposti su SQL - SELECT avanzata. Laura Farinetti - DAUIN Politecnico di Torino

Elena Baralis 2007 Politecnico di Torino 1

SQL: definizione schema

B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a

Basi di Dati. Esercitazione 2: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

3 SQL : Interrogazioni

SQL Laboratorio di Basi di Dati a.a. 2002/2003

Caratteristiche dei linguaggi per Database

Compito Basi di Dati. Tempo concesso: 2 ore 18 Febbraio 2013 Nome: Cognome: Matricola:

Basi di dati: appello 21/09/12

1) Semplicissimi esercizi introduttivi

Esercizio con attributo cross-dimensionale - transazionale

Interrogazioni complesse. SQL avanzato 1

Data management a.a Il linguaggio SQL

Laboratorio di Basi di Dati

PROVA SCRITTA DI TECNOLOGIA DATABASE 14/12/2005 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

Corso di Basi di Dati

SQl come DML: Esercitazione

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Transcript:

Basi di Dati Esercitazione SQL 19 maggio 2005 Paolo Papotti

Considerando la seguente base di dati: Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto, Nome, Marca, Modello) Catalogo (CodiceFornitore, CodiceProdotto, Costo) Esercitazione 2 formulare in SQL una interrogazione per ciascuno dei seguenti punti: 1. Trovare il numero dei fornitori che lavorano a Roma. 2. Costruire l elenco dei prodotti venduti, visualizzando Codice e Costo del prodotto e Nome del fornitore presso cui è venduto, e ordinarlo come ascendente rispetto al codice e al costo del prodotto (prima rispetto al codice poi al costo). 3. Trovare il costo del prodotto più caro venduto a Milano. 4. Trovare il costo medio dei prodotti forniti in ciascuna città (visualizzare costo e città). Esercitazione Basi di Dati SQL 2

Considerando la seguente base di dati: Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto, Nome, Marca, Modello) Catalogo (CodiceFornitore, CodiceProdotto, Costo) Esercitazione 2 formulare in SQL una interrogazione per ciascuno dei seguenti punti: 5. Trovare il numero dei prodotti a catalogo per ogni città. 6. Trovare il codice del prodotto più costoso tra quelli distribuiti dai fornitori presenti a Roma. 7. Trovare i nomi dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo. 8. Trovare presso quale fornitori conviene comprare i singoli prodotti (chi vende a meno un determinato prodotto?); mostrare: Nome del fornitore, Codice e Costo del prodotto. Esercitazione Basi di Dati SQL 3

Le Relazioni Nome CodiceFornitore Indirizzo Città Ladroni 001 Via Ostense Roma Risparmietti 002 Viale Marconi Roma Teloporto 010 Via Roma Milano CodiceFornitore CodiceProdotto Costo 001 0002 3.200 001 0003 2.200 002 0001 1.900 002 0002 2.500 002 0003 1.800 010 0001 2.200 010 0003 2.000 CodiceProdotto Nome Marca Modello 0001 Notebook IBM 390 x 0002 Desktop IBM 510 0003 Desktop ACER 730 Fornitori Catalogo Prodotti Esercitazione Basi di Dati SQL 4

1. Trovare il numero dei fornitori che lavorano a Roma. Esercizio 1 Esercitazione Basi di Dati SQL 5

Soluzione Esercizio 1 1. Trovare il numero dei fornitori che lavorano a Roma. SELECT count(*) FROM Fornitori WHERE Citta = Roma'; Esercitazione Basi di Dati SQL 6

2. Costruire l elenco dei prodotti venduti, visualizzando Codice e Costo del prodotto e Nome del fornitore presso cui è venduto, e ordinarlo come ascendente rispetto al codice e al costo del prodotto (prima rispetto al codice poi al costo). Esercizio 2 Esercitazione Basi di Dati SQL 7

Soluzione Esercizio 2 2. Costruire l elenco dei prodotti venduti, visualizzando Codice e Costo del prodotto e Nome del fornitore presso cui è venduto, e ordinarlo come ascendente rispetto al codice e al costo del prodotto (prima rispetto al codice poi al costo). SELECT C.CodiceProdotto, C.Costo, F.Nome FROM Catalogo AS C, Fornitori AS F WHERE C.CodiceFornitore = F.CodiceFornitore ORDER BY C.CodiceProdotto ASC, C.Costo ASC Esercitazione Basi di Dati SQL 8

Esercizio 3 3. Trovare il costo del prodotto più caro venduto a Milano. Esercitazione Basi di Dati SQL 9

Soluzione Esercizio 3 3. Trovare il costo del prodotto più caro venduto a Milano. SELECT max(costo) FROM Catalogo C JOIN Fornitori F ON F.CodiceFornitore=C.CodiceFornitore WHERE Citta = 'Milano'; Esercitazione Basi di Dati SQL 10

Esercizio 4 4. Trovare il costo medio dei prodotti forniti in ciascuna città (visualizzare costo e città). Esercitazione Basi di Dati SQL 11

Soluzione Esercizio 4 4. Trovare il costo medio dei prodotti forniti in ciascuna città (visualizzare costo e città). SELECT avg(costo) AS CostoMedio, F.Citta FROM Catalogo AS C, Fornitori AS F WHERE C.CodiceFornitore=F.CodiceFornitore GROUP BY F.Citta Esercitazione Basi di Dati SQL 12

Soluzione Esercizio 4 Notiamo che l interrogazione: SELECT Costo, F.Citta FROM Catalogo AS C, Fornitori AS F WHERE C.CodiceFornitore=F.CodiceFornitore restituisce: media: 2.320 media: 2.100 Costo Città 2.200 Roma 3.200 Roma 1.900 Roma 2.500 Roma 1.800 Roma 2.200 Milano 2.000 Milano Esercitazione Basi di Dati SQL 13

5. Trovare il numero dei prodotti a catalogo in ogni città Esercizio 5 Esercitazione Basi di Dati SQL 14

Soluzione Esercizio 5 5. Trovare il numero dei prodotti a catalogo in ogni città. SELECT Citta, count(distinct CodiceProdotto) FROM Catalogo C JOIN Fornitori F ON F.CodiceFornitore=C.CodiceFornitore GROUP BY F.Citta; Esercitazione Basi di Dati SQL 15

Esercizio 6 6. Trovare il codice del prodotto più costoso tra quelli distribuiti dai fornitori presenti a Roma. Esercitazione Basi di Dati SQL 16

Soluzione Esercizio 6 6. Trovare il codice del prodotto più costoso tra quelli distribuiti dai fornitori presenti a Roma. SELECT DISTINCT C.CodiceProdotto FROM Fornitori AS F, Catalogo AS C WHERE F.CodiceFornitore = C.CodiceFornitore AND F.Citta = 'Roma' AND C.Costo = (SELECT MAX(costo) FROM Fornitori F1, Catalogo C1 WHERE F1.CodiceFornitore = C1.CodiceFornitore AND F1.Citta = 'Roma') Esercitazione Basi di Dati SQL 17

Soluzione Esercizio 6 dove: MaxCosto 3.200 SELECT MAX(costo) FROM Fornitori F1, Catalogo C1 WHERE F1.CodiceFornitore = C1.CodiceFornitore AND F1.Citta = 'Roma' N.B. Gli op. aggregati non fanno selezione, restituiscono valori su insieme. Non è quindi un query valida: SELECT C.CodiceProdotto, MAX(costo) [ ] Esercitazione Basi di Dati SQL 18

Esercizio 7 7. Trovare i nomi dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo. Osservazioni: Il quesito può essere riformulato nella seguente maniera: trovare i nomi dei fornitori per i quali non esiste un prodotto in catalogo che non distribuiscono. Esercitazione Basi di Dati SQL 19

Soluzione Esercizio 7 7. Trovare i nomi dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo. Algebra Relazionale: π Nome ((π CF (Fornitori)- R ) Fornitore ) dove: R:= π CF ( ( (π CF (Fornitori) π CP (Catalogo)) π CF,CP (Catalogo) ) ) R corrisponde ai CF dei Fornitori ai quali manca almeno un prodotto di quelli in catalogo. Esercitazione Basi di Dati SQL 20

Soluzione Esercizio 7 7. Trovare i nomi dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo. Nome Risparmietti SELECT DISTINCT F1.Nome FROM Fornitori F1 WHERE F1.CodiceFornitore NOT IN ( SELECT DISTINCT F.CodiceFornitore 2 FROM Prodotti P, Fornitori F WHERE (F.CodiceFornitore, P.CodiceProdotto) NOT IN ( SELECT DISTINCT E.CodiceFornitore, E.CodiceProdotto FROM Catalogo E)) 1 3 Esercitazione Basi di Dati SQL 21

Soluzione Esercizio 7 7. Trovare i nomi dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo. Nome Risparmietti SELECT DISTINCT F.Nome FROM Fornitori AS F WHERE NOT EXISTS ( SELECT P.CodiceProdotto FROM Prodotti P WHERE NOT EXISTS ( SELECT C.CodiceProdotto FROM Catalogo C WHERE C.CodiceFornitore = F.CodiceFornitore AND C.CodiceProdotto = P.CodiceProdotto)); 1 2 3 Esercitazione Basi di Dati SQL 22

8. Trovare presso quale fornitori conviene comprare i singoli prodotti (chi vende a meno un determinato prodotto?); mostrare: Nome del fornitore, Codice e Costo del prodotto. Esercizio 8 Esercitazione Basi di Dati SQL 23

8. Trovare presso quali fornitori conviene comprare i singoli prodotti (chi vende a meno un determinato prodotto?); mostrare: Nome del fornitore, Codice e Costo del prodotto. Soluzione Esercizio 8 SELECT F1.Nome, C1.CodiceProdotto, C1.Costo FROM CATALOGO AS C1, FORNITORI AS F1 WHERE C1.CODICEFORNITORE = F1.CODICEFORNITORE AND C1.Costo = ( SELECT min(c.costo) FROM Catalogo AS C WHERE C1.CodiceProdotto = C.CodiceProdotto ) Esercitazione Basi di Dati SQL 24