SQL seconda 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 2012/13



Documenti analoghi
SQL seconda 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

(anno accademico )

SQL prima 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 2011/12

Interrogazioni nidificate, commenti

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

Il linguaggio SQL: query innestate

4 SQL : Interrogazioni nidificate

CONCETTO DI ANNIDAMENTO

Gli operatori relazionali

Ricorsione in SQL-99. Introduzione. Idea di base

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

Esercitazione su SQL

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

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

Sistemi per la gestione di database: MySQL ( )

Interrogazioni complesse. SQL avanzato 1

Data la seguente tabella :

Data management a.a Il linguaggio SQL

Definizione di domini

SQL IL LINGUAGGIO DI INTERROGAZIONE

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

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

SQL - Funzioni di gruppo

Basi di dati 9 febbraio 2010 Compito A

SQL/OLAP. Estensioni OLAP in SQL

Data Warehousing (DW)

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

Il linguaggio SQL: viste e tabelle derivate

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

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

Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Esame di Sistemi Informativi e Basi di Dati 6 crediti Aprile 2006

Vincoli di integrità

POLIAGE GUIDA RAPIDA

Basi di dati II prova intermedia 16 Marzo 2006 Compito 1

Esercizio sui data base "Gestione conti correnti"

Il Modello Relazionale

Archivi e Basi di Dati

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

ALGEBRA RELAZIONALE RIEPILOGO

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Structured Query Language parte 1

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

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

Elena Baralis 2007 Politecnico di Torino 1

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Istruzioni DML di SQL

Introduzione all Algebra Relazionale

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

Una metodologia di progettazione di applicazioni web centrate sui dati

Calcolo Relazionale Basi di dati e sistemi informativi 1. Calcolo Relazionale. Angelo Montanari

L architettura di un DBMS

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

GERARCHIE RICORSIVE - SQL SERVER 2008

Dati relazionali e XML

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

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

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

Introduzione ai database relazionali

Lezione 8. La macchina universale


Manuale "Conto Corrente e servizi"

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Basi di Dati Corso di Laura in Informatica Umanistica

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

Elementi di Algebra Relazionale

CAPITOLO 4 ESERCIZI SU SQL

Basi di dati. SQL :Structured Query Language: SELECT (II) Prof.ssa Rosalba Giugno. SQL (Slide tratte in parte da. McGraw-Hill.

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

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Fa riferimento ad una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

EXCEL FUNZIONI PRINCIPALI

SQL (STRUCTURED QUERY LANGUAGE)

Il linguaggio SQL: le basi

Linguaggio SQL. Structured Query Language

DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 RIDONDANZE E ANOMALIE

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

ALGEBRA DELLE PROPOSIZIONI

DATABASE RELAZIONALI

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Linguaggi per basi di dati

Algebra Booleana ed Espressioni Booleane

Secondo Compitino di Basi di Dati

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

SQL. Alcune note sulla definizione dei dati

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

Unità 2.1 Comandi sui database

Capitolo 13. Interrogare una base di dati

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

Operazioni sui database

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

ESAME di INFORMATICA e ARCHIVIAZIONE

Transcript:

SQL seconda 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 2012/13

Interrogazioni nidificate Interrogazioni nidificate 2 Si ottiene una interrogazione nidificata quando un interrogazione SQL compare in un predicato della clausola WHERE (predicato complesso). Predicato complesso (o a struttura complessa) E un predicato che confronta il valore di un attributo (o espressione) con il risultato di un altra interrogazione SQL (interrogazione nidificata). L interrogazione nidificata deve essere mono-attributo e quindi produce un insieme di valori. Poiché il risultato di una interrogazione SQL è un insieme di valori occorre estendere gli operatori di confronto per poter realizzare la comparazione tra un valore e un insieme di valori.

Predicato complesso Operatori di confronto per predicati complessi Si ottengono combinando i normali operatori di confronto op {=, <>, <, >, <=, >=} con le parole chiave ALL e ANY. Il significato è il seguente: 3 A op ANY(SQLquery) questo predicato è soddisfatto dalla tupla t se esiste almeno un valore v nel risultato dell interrogazione SQLquery che verifica la condizione: t[a] op v A op ALL(SQLquery) questo predicato è soddisfatto dalla tupla t se per ogni valore v nel risultato dell interrogazione SQLquery è verificata la condizione: t[a] op v

Predicato complesso Operatori di confronto per predicati complessi 4 Stenografie =ANY si può scrivere IN <>ALL si può scrivere NOT IN

Esempio Interrogazioni nidificate: esempi 5 Trovare la destinazione dei treni che non fermano a Brescia. TRENO(NumTreno, Cat, Part, Arrivo, Dest) FERMATA( NumTreno, Stazione, Orario) SELECT DISTINCT Dest FROM TRENO WHERE NumTreno NOT IN (SELECT NumTreno FROM FERMATA WHERE Stazione = Brescia )

Interrogazioni nidificate Interrogazioni nidificate Si possono classificare in due categorie: 6 Interrogazioni nidificate INDIPENDENTI dall interrogazione che le contiene (interrogazione esterna): in questo caso l interrogazione nidificata può essere valutata una volta sola in quanto non dipende dalla tupla corrente dell interrogazione esterna. Interrogazioni nidificate DIPENDENTI dall interrogazione che le contiene (interrogazione esterna): in questo caso l interrogazione nidificata condivide con l interrogazione esterna almeno una variabile tupla che realizza il cosiddetto passaggio di binding ; tale situazione implica che l interrogazione nidificata debba essere valutata per ogni tupla dell interrogazione esterna.

Interrogazioni nidificate: esempi CLIENTE(CF, Nome, Cognome, Prof, DataN, Città) FILIALE(Codice, Nome, Indirizzo, Città) CONTO(Filiale, Numero, Saldo) INTESTAZIONE(FilialeCC, NumeroCC, Cliente) MOVIMENTO(FilialeCC, NumeroCC, Num, Tipo, Data, Imp) Esempio Trovare il nome e il cognome degli intestatari dei conti dove tutti i movimenti eseguiti sono stati di importo inferiore a 1000 euro. SELECT Nome, Cognome FROM CLIENTE as C, INTESTAZIONE as I WHERE C.CF = I.Cliente AND 7 1000 >ALL (SELECT Imp FROM MOVIMENTO WHERE FilialeCC=I.FilialeCC AND NumeroCC=I.NumeroCC)

Clausola EXISTS E una clausola utilizzabile nei predicati complessi. Sintassi EXISTS(SQLquery) Semantica EXISTS(q) 8 true se q produce almeno una tupla false altrimenti EXISTS è efficace se viene applicata con passaggio di binding, vale a dire se q è una interrogazione dipendente dall interrogazione esterna.

Esempio Clausola EXISTS Trovare il nome e il cognome degli intestatari di conti correnti che non hanno eseguito prelievi BANCOMAT dal 1/4/2010 a oggi SELECT Nome, Cognome FROM CLIENTE C, INTESTAZIONE I WHERE C.CF = I.Cliente AND NOT EXISTS (SELECT 1 FROM MOVIMENTO WHERE Data > 1/4/2010 AND TIPO= bancomat AND FilialeCC = I.FilialeCC AND NumeroCC = I.NumeroCC) 9

Esercizi Interrogazioni nidificate Trovare numero, filiale e saldo dei conti che non hanno intestatari residenti a Verona. Trovare il nome e il cognome dei clienti che sono intestatari di un conto insieme ad un altro cliente di cognome Rossi. 10 Trovare per ogni filiale il nome e il cognome del cliente correntista più giovane, riportando anche il codice della filiale.

Interrogazioni nidificate CLIENTE(CF, Nome, Cognome, Prof, DataN, Città) CONTO(Filiale, Numero, Saldo) INTESTAZIONE(FilialeCC, NumeroCC, Cliente) Trovare i clienti che sono intestatari di un conto insieme ad un altro cliente di cognome Rossi. SELECT CL.Nome, CL.Cognome FROM CLIENTE CL, INTESTAZIONE I WHERE CL.CF = I.Cliente AND 11 EXISTS (SELECT * FROM CLIENTE C1, INTESTAZIONE I1 WHERE C1.CF = I1.Cliente AND C1.Cognome = Rossi AND I1.FilialeCC = I.FilialeCC AND I1.NumeroCC = I.NumeroCC AND I1.Cliente <> I.Cliente)