ESERCIZI INTERROGAZIONI SQL

Documenti analoghi
BASI DI DATI. Esercizi sull algebra relazionale. Docente: Giorgio Giacinto A.A. 2008/2009

Basi di Dati DBDMG - Politecnico di Torino Esercizi di SQL

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

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

4 SQL : Interrogazioni nidificate

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

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

SQL e algebra relazionale

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

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

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

Elena Baralis 2007 Politecnico di Torino 1

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

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

Tipi di sottoquery SQL

Interrogazioni nidificate

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

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

Interrogazioni nidificate

Esercitazione: Interrogazioni SQL

Esercizi di SQL 1- SELEZIONI SEMPLICI 1 2- SELEZIONI CON PROIEZIONI 1 3- FUNZIONI DI INSIEME 2 4- FUNZIONI DI AGGREGAZIONE 2 5- HAVING 3

Caratteristiche dei linguaggi per Database

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

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

Basi di Dati Esempi di SQL

SQL - Sottointerrogazioni

Esercizi di SQL. 3) cognome e nome dei clienti che abitano a Rimini e guadagnano più di 3000;

Basi di Dati Esempi di SQL

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

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

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

Esercizio 1 ESERCIZI DI PROGETTAZIONE CONCETTUALE DI BASI DI DATI. La base di dati di una università contiene informazioni

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

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:

OBIETTIVI DELL'ESERCITAZIONE

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

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

Esercitazione su SQL

Capitolo 4. SQL: il linguaggio di interrogazione. Originato da SEQUEL-XRM e System-R ( ) dell IBM

Basi di Dati Esempi di prove di verifica con soluzioni

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

Trovare i nomi dei marinai che hanno un imbarco su almeno una nave

CAPITOLO 4 ESERCIZI SU SQL

Fase di Analisi Class Diagram. Esercizi

Basi di Dati Corso di Laura in Informatica Umanistica

MAX, SUM, AVG, COUNT)

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

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

ACCESS Esercitazione (query complesse) Ing. Cosimo Orlacchio

Appello di BD del Corso di laurea in Informatica del 9/1/2007 Compito e soluzioni

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

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

OPERAZIONI SULLA STRUTTURA

Esempio di database relazionale con l utilizzo del prodotto MySQL

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

Esercizi sulla modellazione concettuale e su SQL. Alessandra Raffaetà. Dipartimento di Informatica Università Ca Foscari Venezia

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

Università degli Studi di Milano. Esercizi Corso SIT. Basi di dati

Data management a.a Il linguaggio SQL

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog.

Il linguaggio SQL: query innestate

Il linguaggio di Interrogazione SQL Esercizi

Interrogazioni complesse. SQL avanzato 1

I modelli logici dei dati

CREATE TABLE Nome ( Attributo Tipo [Vincolo {, Vincolo }] {, Attributo Tipo [Vincolo {, Vincolo }]} [, VincoloDiTabella {, VincoloDiTabella}] )

Basi di Dati. Oracle SQLPLUS - Esercitazione n. 2 Passi preliminari per lo svolgimento delle esercitazioni

Soluzioni 1.1. SELECT cognome FROM dipendenti; 1.2. SELECT nome FROM dipendenti; 1.3. SELECT cognome, nome FROM dipendenti; 1.4

Basi di Dati. Esercizi di SQL (2) - Soluzioni

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

1- Il nome di tutte le sale di Pisa SELECT s.nome FROM Sale s WHERE s.città = 'Pisa'

Esercizio 4.1. Soluzione:

Esame di Informatica Generale 25 giugno 2010 Professori: Carulli, Fiorino, Mazzei

2011 Politecnico di Torino 1

SQL (STRUCTURED QUERY LANGUAGE)

REGOLE DELL ARIA EUROPEE

SQL PER LA DEFINIZIONE DI BASI DI DATI

OR true null false true true true true null true null null false true null false NOT

DATABASE CLIENTIRAPPRESENTANTI

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

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

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la comunità scientifica di ricerca paleontologica.

Transcript:

ESERCIZI INTERROGAZIONI SQL 2 Interrogazioni base di dati Azienda Mostrare nome e cognome di tutti gli impiegati del dipartimento 5 che lavorano più di 10 ore alla settimana sul progetto ProdottoX Mostrare il nome e cognome di tutti gli impiegati che hanno una persona a carico con il loro stesso nome di battesimo Mostrare il nome e cognome di tutti gli impiegati che hanno come diretto supervisore Franklin Wong Mostrare il nome e cognome di tutti gli impiegati che guadagnano oltre $10.000 in più rispetto allo stipendio più basso

Base di Dati Catalogo 3 Considerate lo schema seguente: Fornitori (fid: integer, fnome: string, indirizzo: string) Pezzi (pid: integer, pnome: string, colore: string) Catalogo (fid: integer, pid: integer, costo: real) I campi chiave sono sottolineati. La relazione Catalogo elenca i prezzi praticati da ciascun fornitore. 4 Interrogazione 1 Trovare i fid dei fornitori che forniscono pezzi rossi o pezzi verdi C.fid Parti P, Catalogo C (P.colore= rosso OR P.colore= verde ) AND C.pid=P.pid

Formulazione alternativa I1 5 UNION C.fid Parti P, Catalogo C P.colore= rosso AND C.pid=P.pid C.fid Parti P, Catalogo C P.colore= verde AND C.pid=P.pid 6 Interrogazione 2 Trovare i fid dei fornitori che forniscono pezzi rossi e pezzi verdi C.fid Catalogo C, Pezzi P P.colore= rosso AND C.pid=P.pid INTERSECT C.fid Catalogo C, Pezzi P P.colore= verde AND C.pid=P.pid

Base di dati Compagnia Aerea 7 Considerate lo schema seguente: Volo (vno: integer, da: string, a: string, distanza: integer, partenza: time, arrivo: time) Aereo (aid: integer, anome: string, autonomia: integer) Certificato (pid: integer, aid: integer) Personale (pid: integer, pnome: string, salario: integer) La relazione Personale descrive piloti cos come gli altri tipi di impiegati Ogni pilota è certificato per certi aerei e solo i piloti sono certificati per volare. Interrogazione 1 8 Trovare i pid dei piloti certificati per qualche aereo Boeing. C.pid Aereo A, Certificato C A.aid=C.aid AND A.nome LIKE Boeing%

Interrogazione 2 9 Trovare gli aid di tutti gli aerei che possono essere usati per voli diretti da Los Angeles a Chicago. A.aid Aereo A, Volo V V.da= Los Angeles AND V.a= Chicago AND A.autonomia > V.distanza 10 SQL Avanzato

Formulazione alternativa I2 11 C.fid Catalogo C, Pezzi P P.colore= rosso AND C.pid=P.pid AND C.fid IN ( C1.fid Catalogo C1, Pezzi P1 P1.colore= verde AND C1.pid=P1.pid) Formulazione alternativa I2 12 C.fid Catalogo C, Pezzi P P.colore= rosso AND C.pid=P.pid AND EXISTS( P2.pid Catalogo C2, Pezzi P2 P2.colore= verde AND C2.fid=C.fid AND P2.pid=C2.pid)

Interrogazione 3 13 Trovare i pid dei pezzi forniti da almeno due fornitori diversi. C.pid Catalogo C EXISTS ( C1.fid Catalogo C1 C1.pid=C.pid AND C1.fid<>C.fid) Formulazione alternativa I3 14 C.pid Catalogo C GROUP BY C.pid HAVING COUNT(*) > 1

Formulazione alternativa I2 15 Trovare gli aid di tutti gli aerei che possono essere usati per voli diretti da Los Angeles a Chicago. A.aid Aereo A A.autonomia > ( V.distanza Volo V V.da= Los Angeles AND V.a= Chicago ) Interrogazione 3 16 Trovare i pid dei piloti certificati solo per aerei Boeing DISTINCT eid certified c NOT EXISTS ( * aircraft a, certified c1 a.aid = c1.aid AND c1.eid = c.eid AND a.aname NOT LIKE 'Boeing%')

Interrogazione 4 17 Trovare i pid dei piloti certificati per tutti gli aerei Boeing DISTINCT eid employees e NOT EXISTS ( * aircraft a a.aname LIKE 'Boeing%' AND NOT EXISTS ( * certified c e.eid = c.eid AND c.aid = a.aid)) Interrogazione 5 18 Trovare i nomi dei piloti che possono operare su aerei con un autonomia superiore a 3000 miglia, ma che non sono certificati per alcun aereo Boeing DISTINCT P.pnome Aereo A, Certificato C, Personale P P.pid=C.pid AND C.aid=A.aid AND A.autonomia>3000 AND P.pid NOT IN ( C1.pid Certificato C1, Aereo A1 C1.aid=A1.aid AND A1.anome LIKE Boeing% )

Interrogazione 6 19 Trovare i pid del personale con il salario più alto P.pid Personale P P.stipendio=( MAX(P1.stipendio) Personale P1) Interrogazione 7 20 Trovare i pid del personale con il 2 stipendio più alto P.pid Personale P P.stipendio = ( MAX(P1.stipendio) Personale P1 P1.stipendio<> ( MAX(P2.stipendio) Personale P2))

Interrogazione 8 21 Visualizzare il nome e lo stipendio di ogni dipendente non-pilota il cui stipendio è superiore allo stipendio medio dei piloti. P.dnome, P.stipendio Personale P P.pid NOT IN ( C.pid Certificato C) AND P.stipendio > ( AVG(P1.stipendio) Personale P1, Certificato C1 P1.pid = C1.pid) Interrogazione 9 22 Trovare i nomi degli aerei tali che tutti i piloti abilitati al volo su quegli aerei guadagnano almeno 80000,00 DISTINCT A.anome P Aereo A A.aid NOT IN ( C.aid Certificato C, Personale C.pid = P.pid AND P.stipendio < 80000)

Interrogazione 10 23 Trovare i pid del personale certificato esattamente per tre aerei C.pid Certificato C GROUP BY C.pid HAVING COUNT(*) = 3 Interrogazione 11 24 Per ciascun pilota abilitato al volo su più di tre aerei, trovare il pid e la massima distanza percorribile dagli aerei su cui è abilitato. C.pid, MAX(A.autonomia) Certificato C, Aereo A C.aid = A.aid GROUP BY C.pid HAVING COUNT(*)>3

Interrogazione 12 25 Per tutti gli aerei che percorrono una distanza superiore alle 1000 miglia, trovare il nome dell aereo e lo stipendio medio dei piloti abilitati al volo su quell aereo. A.anome, AVG(P.stipendio) Certificato C, Aereo A, Personale P C.aid = A.aid AND C.pid = P.pid AND A.autonomia>1000 GROUP BY A.aid, A.anome Interrogazione 13 26 Visualizzare i nomi del personale abilitato al volo solo su aerei che possono coprire distanze superiori alle 1000 miglia. P.pnome Certificato C, Aereo A, Personale P C.aid = A.aid AND C.pid = P.pid GROUP BY p.pid, p.pnome HAVING EVERY(A.autonomia>1000)

Interrogazione 14 27 Identificare le rotte che possono essere percorse da tutti i piloti con uno stipendio superiore a 100000,00 DISTINCT V.da, V.a Volo V NOT EXISTS ( * Personale P P.stipendio > 100000 AND NOT EXISTS ( * Aereo A, Certificato C A.autonomia > V.distanza AND P.pid = C.pid AND A.aid = C.aid)) Nota su I9 e I14 28 Nella interrogazione I9 siamo interessati agli aerei i cui piloti abilitati guadagnano almeno 80.000,00 Euro Presa una coppia di aerei che risponde all interrogazione, gli insiemi dei piloti abilitati per ciascun aereo possono essere diversi, ma in ciascun insieme tutti i piloti guadagnano almeno 80.000,00 Euro Nella interrogazione I14 siamo interessati alle rotte che possono essere percorse da tutti i piloti che guadagnano 100.000,00 Euro

Base di dati Università 29 Studente (snum: integer, snome: string, specializzazione: string, anno: string, età: integer) Corso (cnome: string, orario: time, aula: string, pid: integer) Iscritto (snum: integer, cnome: integer) Professore (pid: integer, pnome: string, dipartid: integer) Interrogazione 15 30 Trovare i nomi dei professori per i quali il totale degli iscritti in un loro corso è minore di cinque. DISTINCT P.pnome Professore P, Corso C, Iscritto I C.cnome=I.cnome AND C.pid=P.pid GROUP BY (P.pid,P.pnome) HAVING COUNT(*) < 5

Interrogazione 16 31 Trovare i nomi degli studenti non iscritti ad alcun corso DISTINCT S.snome Studente S S.snum NOT IN ( I.snum Iscritto I) Interrogazione 17 32 Trovare i nomi dei corsi che hanno almeno 5 iscritti C.cnome Corso C, Iscritto I C.cnome = I.cnome GROUP BY C.cnome HAVING COUNT(*)>=5

Interrogazione 19 33 Trovare i nomi degli studenti iscritti al maggior numero di corsi DISTINCT S.snome Studente S, Iscritto I S.snum = I.snum GROUP BY (I.snum,S.snome) HAVING COUNT(*) >= ALL ( COUNT(*) Iscritto I1 GROUP BY I1.snum) Interrogazione 20 34 Per ciascun valore di età che appare in Studente, trovare l anno di corso nel quale è più frequente trovare studenti di quell età. Per esempio, se ci sono più studenti di 20 anni al secondo anno piuttosto che negli altri, si dovrebbe visualizzare (20,2).

Formulazione I20 35 S.età, S.anno Studente s1 GROUP BY età, anno HAVING COUNT(*) >= ALL ( COUNT(*) ORDER BY Stat.età Studente s2 s2.età = s1.età GROUP BY s2.anno)