esempi sql - prof ing g. la rosa1 elaborazione dati informatici università degli studi di catania...

110
Esempi SQL - Prof Ing G. La Rosa Esempi SQL - Prof Ing G. La Rosa 1 Elaborazione dati Elaborazione dati informatici informatici Università degli Studi di Catania Università degli Studi di Catania Facoltà medicina Facoltà medicina Corsi di laurea in: Corsi di laurea in: Tecnici di Radiologia Medica per Tecnici di Radiologia Medica per Immagini Radioterapia Immagini Radioterapia

Upload: eleonora-viola

Post on 02-May-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 11

Elaborazione dati Elaborazione dati informaticiinformatici

Università degli Studi di CataniaUniversità degli Studi di Catania

Facoltà medicinaFacoltà medicina

Corsi di laurea in: Corsi di laurea in: Tecnici di Radiologia Medica per Tecnici di Radiologia Medica per

Immagini RadioterapiaImmagini Radioterapia

Page 2: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 22

Linguaggio SQLLinguaggio SQL

Prof Ing Gaetano La RosaProf Ing Gaetano La Rosa

email: email: [email protected]@glrstudio.com

Web: www.glrstudio.comWeb: www.glrstudio.com

Page 3: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 33

SQL: caratteriSQL: caratteri

SQL utilizza SQL utilizza – i caratteri alfabetici;i caratteri alfabetici;– Cifre decimali;Cifre decimali;– Operatori aritmetici (+ - * /);Operatori aritmetici (+ - * /);– Operatori di confronto (< >);Operatori di confronto (< >);– Caratteri di sintassi (, ;);Caratteri di sintassi (, ;);

Page 4: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 44

SQL: identificatoriSQL: identificatori

Gli identificatori sono i nomi di tabelle Gli identificatori sono i nomi di tabelle o di attributi o di attributi

Sono costituiti da sequenze di caratteri Sono costituiti da sequenze di caratteri di lunghezza non superiore a 18 di lunghezza non superiore a 18

Devono iniziare con una lettera e Devono iniziare con una lettera e possono contenere il carattere ‘_’possono contenere il carattere ‘_’

Per separare il nome tabella dal nome Per separare il nome tabella dal nome attributo si utilizza il carattere ‘.’attributo si utilizza il carattere ‘.’– Nometabella.nomeattributoNometabella.nomeattributo

Page 5: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 55

SQL: tipi di datiSQL: tipi di dati

Nella dichiarazione della struttura di una Nella dichiarazione della struttura di una tabella occorre specificare il tipo di dati tabella occorre specificare il tipo di dati per ogni attributoper ogni attributo

Alcuni tipi standard:Alcuni tipi standard:– character(n) character(n) stringa n char stringa n char– Character Character stringa 1 char stringa 1 char– Date Date data nel formato aaaa/mm/gg data nel formato aaaa/mm/gg– Time Time ora nel formato hh:mm ora nel formato hh:mm– Integer(p) Integer(p) intero con precisione p intero con precisione p– Smallint Smallint intero con precisione 5 intero con precisione 5– Integer Integer intero con precisione 10 intero con precisione 10

Page 6: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 66

SQL: tipi di dati (2)SQL: tipi di dati (2)

– Decimal(p,s) Decimal(p,s) decimale con precisione p e cifre decimali s decimale con precisione p e cifre decimali s– Real Real numero reale con precisione 7numero reale con precisione 7– Float(p) Float(p) numero reale con mantissa di precisione p numero reale con mantissa di precisione p– Float Float numero reale con mantissa di precisione 15 numero reale con mantissa di precisione 15

AbbreviazioniAbbreviazioni– Char(n) anziché character(n)Char(n) anziché character(n)– Char anziché characterChar anziché character– Int(p) anziché integer(p)Int(p) anziché integer(p)– Dec(p,s) anziché decimal(p,s)Dec(p,s) anziché decimal(p,s)

NB alcune versioni SQL prevedono definizioni tipi lievemente NB alcune versioni SQL prevedono definizioni tipi lievemente diversediverse

Page 7: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 77

Costanti e operatoriCostanti e operatori

Le costanti stringa sono delimitate da apici: Le costanti stringa sono delimitate da apici: ‘stringa’‘stringa’

Gli attributi che non hanno un valore definito Gli attributi che non hanno un valore definito assumono il valore NULL (diverso sia da 0 assumono il valore NULL (diverso sia da 0 che da stringa vuota)che da stringa vuota)

Sono previsti gli operatori NOT, AND, ORSono previsti gli operatori NOT, AND, OR Clausola ‘not null’: va inserita accanto ai Clausola ‘not null’: va inserita accanto ai

nomi degli attributi che non possono nomi degli attributi che non possono prevedere valori null (ad esempio le chiavi) prevedere valori null (ad esempio le chiavi)

Page 8: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 88

Comandi DDL: Data Comandi DDL: Data Definition LanguageDefinition Language Permettono di implementare il modello Permettono di implementare il modello

logico dei dati sulle memorie di massa.logico dei dati sulle memorie di massa.

Nelle più recenti versioni di DBMS Nelle più recenti versioni di DBMS dette operazioni sono effettuate con dette operazioni sono effettuate con interfacce interattive senza l’uso di interfacce interattive senza l’uso di comandi specifici. comandi specifici.

Page 9: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 99

Comando Comando CREATE CREATE TABLETABLE Utilizzato per la creazione di tabelle Utilizzato per la creazione di tabelle Va seguito dal nome della tabella e Va seguito dal nome della tabella e

dall’elenco degli attributi:dall’elenco degli attributi:

– CREATE TABLECREATE TABLE personale personale(Matricola(Matricola char(5),char(5),CognomeCognome char(30),char(30),NomeNome char(30),char(30),CodFisCodFis char(16) not null,char(16) not null,AssuntoAssunto date,date,FilialeFiliale smallint,smallint,Funzione Funzione char(15),char(15),LivelloLivello smallint,smallint,StipBaseStipBase integer,integer,ViaVia char(25),char(25),CapCap char(5),char(5),CittaCitta char(20),char(20),ProvProv char(2)char(2)););

Page 10: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1010

Modifica di una tabella Modifica di una tabella creatacreata ALTER TABLE: permette di ALTER TABLE: permette di

modificare una tabella con modificare una tabella con aggiunta (ADD) o rimozione aggiunta (ADD) o rimozione (DROP) di attributi:(DROP) di attributi:– ALTERALTER TABLETABLE personale personale

ADDADD Nascita date;Nascita date;

– ALTER TABLEALTER TABLE personale personale DROPDROP StipBase; StipBase;

Page 11: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1111

Creazione di indici su Creazione di indici su tabelletabelle CREATE INDEX: permette la CREATE INDEX: permette la

creazione di un nuovo indice su creazione di un nuovo indice su una tabella esistente su specifici una tabella esistente su specifici attributi:attributi:

– CREATE INDEXCREATE INDEX Ipersonale IpersonaleONON personale (cognome, Nome); personale (cognome, Nome);

Page 12: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1212

Cancellazione di Cancellazione di tabelle e indici: DROPtabelle e indici: DROP DROP TABLEDROP TABLE personale; personale;

DROP INDEXDROP INDEX Ipersonale Ipersonale ONON personale; personale;

Page 13: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1313

Comandi DML: Data Comandi DML: Data Manipulation Manipulation LanguageLanguage Permettono di modificare i valori degli Permettono di modificare i valori degli

attributi mediante inserimento, attributi mediante inserimento, modifica e cancellazione.modifica e cancellazione.– INSERT, UPDATE, DELETEINSERT, UPDATE, DELETE

Anche questi comandi in alcune Anche questi comandi in alcune versioni di DBMS possono risultare versioni di DBMS possono risultare nascosti all’utente grazie all’utilizzo di nascosti all’utente grazie all’utilizzo di maschere e interfacce visualimaschere e interfacce visuali

Page 14: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1414

Comandi DML: INSERTComandi DML: INSERT

INSERT INTOINSERT INTO personale personale (Matricola, Cognome, Nome, CodFis, Nascita, (Matricola, Cognome, Nome, CodFis, Nascita,

assunto, Filiale, Funzione, Livello, assunto, Filiale, Funzione, Livello, StipBase, Via, Cap, Citta, Prov)StipBase, Via, Cap, Citta, Prov)

VALUESVALUES (‘CS342’,’Pillera’, ‘Luigi’, ‘PLLLGU…’, (‘CS342’,’Pillera’, ‘Luigi’, ‘PLLLGU…’,

………………,’CT’);,’CT’);

Page 15: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1515

Comandi DML: UPDATEComandi DML: UPDATE

UPDATE UPDATE personalepersonaleSETSET Livello=6, Livello=6,

SETSET Stipbase=1260, Stipbase=1260,

WHEREWHERE matricola=‘CS212’; matricola=‘CS212’;

UPDATEUPDATE personale personaleSETSET Stipbase=Stipbase*1.05, Stipbase=Stipbase*1.05,

WHERE WHERE livello >5;livello >5;

Page 16: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1616

Comandi DML: DELETEComandi DML: DELETE

DELETE FROMDELETE FROM personale personale

WHEREWHERE Matricola=‘CS102’; Matricola=‘CS102’;

DELETE FROMDELETE FROM personale personale

WHEREWHERE Stipbase < 500; Stipbase < 500;

Page 17: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1717

Comandi di Comandi di interrogazione: SELECT interrogazione: SELECT

SELECTSELECT [ALL| DISTINCT] [ALL| DISTINCT] AttributiAttributi

FROMFROM TabelleTabelle

[[WHEREWHERE CondizioneCondizione];];

Page 18: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1818

QUERY su TABELLA QUERY su TABELLA studentistudenti

NOME MATRICOL INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 333333 Teo Verdi 345678 Via Enna 3 444444

Vorrei conoscere indirizzo e telefono di Teo Verdi

Page 19: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 1919

QUERY su TABELLA studenti QUERY su TABELLA studenti (2)(2)

SELECTSELECT Indirizzo, TelefonoIndirizzo, Telefono

FROMFROM Studenti Studenti

WHEREWHERE Nome=‘Teo Verdi’ Nome=‘Teo Verdi’

NOME MATRICOL INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 333333 Teo Verdi 345678 Via Enna 3 444444

Page 20: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2020

Altri esempi:Altri esempi:

Utilizzando il database personale Utilizzando il database personale

1 Visualizzare Cognome, nome e 1 Visualizzare Cognome, nome e codice fiscale del personale avente codice fiscale del personale avente qualifica impiegatoqualifica impiegato

2 Visualizzare tutti i dati del 2 Visualizzare tutti i dati del personale avente residenza in personale avente residenza in Milano Milano

Page 21: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2121

Risposte Risposte

1)1)

SELECTSELECT Cognome, Nome, CodFis Cognome, Nome, CodFis

FROMFROM personale personale

WHEREWHERE Funzione=‘impiegato’; Funzione=‘impiegato’;

2)2)

SELECTSELECT * *

FROM FROM personalepersonale

WHEREWHERE Prov=‘MI’; Prov=‘MI’;

Page 22: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2222

Clausola distinctClausola distinct

SELECTSELECT Funzione Funzione

FROMFROM personale; personale;

produce l’elenco di tutte le professioni dei dipendenti ripetendo la produce l’elenco di tutte le professioni dei dipendenti ripetendo la stessa professione in righe diverse quanti sono i dipendenti che stessa professione in righe diverse quanti sono i dipendenti che svolgono quella funzionesvolgono quella funzione

SELECT DISTINCTSELECT DISTINCT Funzione Funzione

FROMFROM personale; personale;produce l’elenco di tutte le professioni dei dipendenti specificando produce l’elenco di tutte le professioni dei dipendenti specificando una sola volta le singole funzioni presenti una sola volta le singole funzioni presenti

Page 23: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2323

Clausola ASClausola AS

La clausola AS serve per assegnare l’intestazione della tabella La clausola AS serve per assegnare l’intestazione della tabella che si ottiene a seguito di un comando SELECTche si ottiene a seguito di un comando SELECT

Esempi: Esempi: Utilizzando il database personale visualizzare Utilizzando il database personale visualizzare

1 L’ elenco di tutte le province di provenienza dei 1 L’ elenco di tutte le province di provenienza dei dipendenti con intestazione Provinciadipendenti con intestazione Provincia

2 l’ elenco di tutti i dipendenti con cognome, nome, 2 l’ elenco di tutti i dipendenti con cognome, nome, stipendio attuale con intestazione attuale e valore stipendio attuale con intestazione attuale e valore previsionale in caso di aumento del 5% con previsionale in caso di aumento del 5% con intestazione Nuovo. (Il database non deve subire intestazione Nuovo. (Il database non deve subire modifiche)modifiche)

Page 24: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2424

RisposteRisposte

1 1 SELECT DISTINCTSELECT DISTINCT Prov Prov AS AS Provincia Provincia FROMFROM personale; personale;

2 SELECT2 SELECT Cognome, Nome, Cognome, Nome,

Stipbase Stipbase ASAS Attuale, Attuale,

StipBase*1.05 StipBase*1.05 ASAS Nuovo Nuovo

FROMFROM personale; personale;

Page 25: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2525

Query parametriche Query parametriche (MSAccess)(MSAccess)SELECTSELECT Cognome, Nome Cognome, Nome

FROMFROM personale personale WHERE WHERE Funzione =‘impiegato’;Funzione =‘impiegato’;

Query fissa su attributo Funzione= Query fissa su attributo Funzione= ‘impiegato’‘impiegato’

SELECT SELECT Cognome, NomeCognome, NomeFROMFROM personale personale WHEREWHERE Funzione =[quale funzione?]; Funzione =[quale funzione?];

Query parametrica su attributo FunzioneQuery parametrica su attributo FunzioneIl sistema chiederà quale funzione?Il sistema chiederà quale funzione?

Page 26: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2626

Capacità del comando Capacità del comando SQL SELECTSQL SELECTCapacità del comando Capacità del comando SQL SELECTSQL SELECT

SelezioneSelezione ProiezioneProiezione

Tabella 1Tabella 1 Tabella 2Tabella 2

Tabella 1Tabella 1 Tabella 1Tabella 1

JoinJoin

Page 27: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2727

Selezione Selezione

Selezione Selezione consente di ricavare da una consente di ricavare da una relazione un’altra relazione contenente solo relazione un’altra relazione contenente solo le righe che soddisfano una certa condizione le righe che soddisfano una certa condizione

Si realizza con la clausola WHERESi realizza con la clausola WHERE

SELECTSELECT * *FROMFROM personale personale

WHEREWHERE Funzione = ‘dirigente’; Funzione = ‘dirigente’;

Page 28: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2828

Proiezione Proiezione

Proiezione Proiezione consente di ricavare da una consente di ricavare da una relazione un’altra relazione contenente solo relazione un’altra relazione contenente solo alcune colonne della relazione di partenza alcune colonne della relazione di partenza

Si realizza indicando accanto a SELECT gli Si realizza indicando accanto a SELECT gli

attributi richiesti attributi richiesti

SELECTSELECT Cognome, Nome Cognome, NomeFROMFROM personale; personale;

Page 29: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 2929

Congiunzione - Join Congiunzione - Join Congiunzione Congiunzione consente la congiunzione di consente la congiunzione di

più tabelle attraverso degli attributi comuni più tabelle attraverso degli attributi comuni

CREATE TABLECREATE TABLE personale personale((Matricola Matricola char(5) not null,char(5) not null,CognomeCognomechar(30),char(30),NomeNomechar(30),char(30),CodFisCodFis char(16) char(16) not null,not null,AssuntoAssunto date,date,FilialeFilialesmallint,smallint,Funzione Funzione char(15),char(15),LivelloLivellosmallint,smallint,StipBaseStipBaseinteger,integer,ViaViachar(25),char(25),CapCapchar(5),char(5),CittaCittachar(20),char(20),ProvProvchar(2)char(2)););

CREATE TABLECREATE TABLE dipendenza dipendenza((CodFil CodFil smallint not nullsmallint not nullDescrizioneDescrizione char(20)char(20)IndirizzoIndirizzochar(25)char(25)););Fra dipendenza e personale Fra dipendenza e personale

esiste un’associazione 1esiste un’associazione 1n n pertanto la chiave di pertanto la chiave di dipendenza (CodFil) viene dipendenza (CodFil) viene posta come chiave esterna in posta come chiave esterna in personale (Filiale)personale (Filiale)

Page 30: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3030

Congiunzione – Join (2) Congiunzione – Join (2)

Utilizzando la join e le tabelle personale e dipendenza creare la query per visualizzare Utilizzando la join e le tabelle personale e dipendenza creare la query per visualizzare l’elenco di tutti i dipendenti (completo di tutti i dati) con l’indicazione e la descrizione della l’elenco di tutti i dipendenti (completo di tutti i dati) con l’indicazione e la descrizione della filiale nella quale lavorano filiale nella quale lavorano

Page 31: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3131

RispostaRispostaSELECTSELECT * * FROMFROM personale, dipendenza personale, dipendenza WHEREWHERE Filiale=CodFil; Filiale=CodFil;

SELECTSELECT * *FROMFROM personale, dipendenza personale, dipendenzaWHEREWHERE personale.Filiale = personale.Filiale = dipendenza.CodFil;dipendenza.CodFil;

oppureoppure

SELECTSELECT * * FROMFROM personale personale INNER JOININNER JOIN dipendenzadipendenza ON ON personale.Filiale = personale.Filiale = dipendenza.CodFil;dipendenza.CodFil;

oppureoppure

Page 32: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3232

Congiunzione – Left/Right JoinCongiunzione – Left/Right Join La forma La forma

SELECTSELECT * * FROMFROM personale personale INNER JOININNER JOIN dipendenza dipendenza ON ON personale.Filiale = dipendenza.CodFil; personale.Filiale = dipendenza.CodFil;

Permette di selezionare le righe delle due tabelle con Permette di selezionare le righe delle due tabelle con l’attributo comune l’attributo comune INNER JOIN o EQUI JOIN. INNER JOIN o EQUI JOIN.

Se si desidera visualizzare altre informazioni di record per i Se si desidera visualizzare altre informazioni di record per i quali non sussiste la corrispondenza fra le due tabelle è quali non sussiste la corrispondenza fra le due tabelle è possibile utilizzare left o right prima di join a seconda se i possibile utilizzare left o right prima di join a seconda se i dati da visualizzare stanno posti sulla matrice di destra o dati da visualizzare stanno posti sulla matrice di destra o sinistra rispetto al join sinistra rispetto al join

Page 33: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3333

Congiunzione – Left JoinCongiunzione – Left Join

SELECTSELECT * * FROMFROM personale personale LEFT JOINLEFT JOIN dipendenza dipendenza ON ON personale.Filiale = dipendenza.CodFil; personale.Filiale = dipendenza.CodFil;

Permette di selezionare le righe delle due tabelle con Permette di selezionare le righe delle due tabelle con l’attributo comune e gli eventuali campi della tabella l’attributo comune e gli eventuali campi della tabella personale (tabella di sinistra) non aventi corrispondenze personale (tabella di sinistra) non aventi corrispondenze nella tabella di destra. nella tabella di destra.

Page 34: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3434

Congiunzione –Right Join Congiunzione –Right Join

SELECTSELECT * * FROMFROM personale personale RIGHT JOINRIGHT JOIN dipendenza dipendenza ON ON personale.Filiale = dipendenza.CodFil; personale.Filiale = dipendenza.CodFil;

Permette di selezionare le righe delle due tabelle con Permette di selezionare le righe delle due tabelle con l’attributo comune e gli eventuali campi della tabella l’attributo comune e gli eventuali campi della tabella dipendenza (tabella di destra) non aventi corrispondenze dipendenza (tabella di destra) non aventi corrispondenze nella tabella di sinistra. nella tabella di sinistra.

Page 35: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3535

Congiunzione – Self-Congiunzione – Self-Join Join

La congiunzione è detta di self-Join quando opera su una medesima tabellaLa congiunzione è detta di self-Join quando opera su una medesima tabella

ES: aggiungiamo alla tabella personale l’attributo Dirigente che contiene il codice della ES: aggiungiamo alla tabella personale l’attributo Dirigente che contiene il codice della persona che dirige il dipendente. Le informazioni sul Dirigente, in quanto anch’esso persona che dirige il dipendente. Le informazioni sul Dirigente, in quanto anch’esso dipendente, saranno contenute sulle medesima tabella personale. dipendente, saranno contenute sulle medesima tabella personale.

Page 36: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3636

Congiunzione – Self-Join Congiunzione – Self-Join (2) (2)

CREATE TABLECREATE TABLE personale personale(Matricola(Matricola char(5),char(5),CognomeCognomechar(30),char(30),……AssuntoAssunto date,date,DirigenteDirigentechar(5),char(5),FilialeFilialesmallint,smallint,……ProvProvchar(2)char(2)););Esempio: Utilizzando il self join e la tabella personale Esempio: Utilizzando il self join e la tabella personale con il campo dirigente, visualizzare l’elenco dei con il campo dirigente, visualizzare l’elenco dei dipendenti con i dati cognome e nome del dipendente e dipendenti con i dati cognome e nome del dipendente e indicazione del cognome del relativo dirigente indicazione del cognome del relativo dirigente

Per effettuare una self-join Per effettuare una self-join si utilizzano gli alias sui si utilizzano gli alias sui nomi delle tabelle nomi delle tabelle utilizzando la clausola AS. utilizzando la clausola AS.

Page 37: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3737

Risposta Risposta

SELECTSELECT Tab1.Cognome, Tab1.Nome, Tab2.Cognome Tab1.Cognome, Tab1.Nome, Tab2.Cognome FROMFROM personale AS Tab1, personale AS Tab2 personale AS Tab1, personale AS Tab2

WHEREWHERE Tab1.Dirigente = Tab2.Matricola Tab1.Dirigente = Tab2.Matricola ; ;

Page 38: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3838

Operatori logiciOperatori logici

AND, OR, NOTAND, OR, NOT

Esercizio: Esercizio: Realizzare una Query per ottenere elenco dei Realizzare una Query per ottenere elenco dei dipendenti con funzione impiegato con cognome, dipendenti con funzione impiegato con cognome, nome, descrizione e indirizzo della filiale dove nome, descrizione e indirizzo della filiale dove lavorano:lavorano:

Page 39: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 3939

RispostaRisposta

SELECTSELECT Cognome, Nome, Descrizione, indirizzo Cognome, Nome, Descrizione, indirizzoFROMFROM personale, dipendenza personale, dipendenzaWHEREWHERE Funzione=‘impiegato’ Funzione=‘impiegato’ ANDAND Filiale=CodFil; Filiale=CodFil;

……. O per maggiore chiarezza: . O per maggiore chiarezza:

Page 40: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4040

RispostaRisposta

SELECTSELECT personale.Cognome, personale.Nome, personale.Cognome, personale.Nome, dipendenza.Descrizione, dipendenza.indirizzodipendenza.Descrizione, dipendenza.indirizzo

FROMFROM personale, dipendenza personale, dipendenza

WHEREWHERE personale.Funzione=‘impiegato’ personale.Funzione=‘impiegato’ ANDAND personale.Filiale=dipendenza.CodFil;personale.Filiale=dipendenza.CodFil;

Page 41: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4141

Funzioni di Funzioni di aggregazioneaggregazione COUNT: conteggioCOUNT: conteggio SUM: sommaSUM: somma AVG: mediaAVG: media MIN: minimoMIN: minimo MAX: massimoMAX: massimo

Page 42: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4242

Funzione COUNTFunzione COUNT

Conta le righe presenti in una tabellaConta le righe presenti in una tabella Sintassi: COUNT(arg)Sintassi: COUNT(arg)

Arg= * Arg= * tutte le righe tutte le righe

Arg= attributo Arg= attributo tutte le righe con att ! tutte le righe con att !=NULL=NULL

COUNT permette di determinare la COUNT permette di determinare la cardinalità di una relazione cardinalità di una relazione

Può utilizzarsi con clausola WHEREPuò utilizzarsi con clausola WHERE

Page 43: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4343

Funzione COUNT (2)Funzione COUNT (2)

Esercizio Esercizio

Utilizzando la funzione count visualizzare:Utilizzando la funzione count visualizzare:

11 Il numero di dipendenti presenti nel database Il numero di dipendenti presenti nel database personale;personale;

2 il numero di dipendenti aventi uno specifico 2 il numero di dipendenti aventi uno specifico livello assegnato (ovvero con campo !=Null)livello assegnato (ovvero con campo !=Null)

3 il numero di dipendenti residenti nella 3 il numero di dipendenti residenti nella provincia di Catania provincia di Catania

Page 44: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4444

RispostaRisposta

1 1 SELECT COUNTSELECT COUNT (*) (*)

FROMFROM personale; personale;

2 SELECT COUNT2 SELECT COUNT(livello)(livello)

FROMFROM personale; personale;

3 SELECT COUNT3 SELECT COUNT(*)(*)

FROMFROM personale personale

WHEREWHERE Prov=‘CT’; Prov=‘CT’;

Page 45: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4545

Funzione COUNT (3)Funzione COUNT (3)

EsercizioEsercizio Utilizzando la clausola Utilizzando la clausola

DISTINCT visualizzare il DISTINCT visualizzare il numero di numero di differenti livelli che differenti livelli che risiedono nella provincia di CT. risiedono nella provincia di CT. Intestare l’uscita con livelli. Intestare l’uscita con livelli.

Page 46: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4646

RispostaRisposta

SELECT COUNTSELECT COUNT ( (DISTINCTDISTINCT livello) livello) ASAS livelli livelli

FROMFROM personale personale

WHEREWHERE Prov=‘CT; Prov=‘CT;

Page 47: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4747

Funzione SUMFunzione SUM

Restituisce la somma dei valori di Restituisce la somma dei valori di una colonna di tipo numerico una colonna di tipo numerico

Eventuali campi NULL vanno Eventuali campi NULL vanno considerati come 0considerati come 0

Può utilizzarsi con clausola Può utilizzarsi con clausola WHERE e DISTINCTWHERE e DISTINCT

Page 48: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4848

Funzione SUM (2)Funzione SUM (2)

Esercizio Esercizio

Utilizzando l’archivio personale Utilizzando l’archivio personale visualizzare visualizzare

1.1. la Somma degli stipendi base (stipbase) la Somma degli stipendi base (stipbase) appartenenti al livello 5appartenenti al livello 5

2.2. La somma degli stipendi base del livello La somma degli stipendi base del livello 5 qualora si effettui un aumento del 10%, 5 qualora si effettui un aumento del 10%, intestando la colonna come Previsione intestando la colonna come Previsione

Page 49: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 4949

RispostaRisposta

1 SELECT SUM1 SELECT SUM (StipBase) (StipBase)FROMFROM personale personale

WHEREWHERE Livello=5; Livello=5;

2 SELECT SUM2 SELECT SUM (StipBase*1,1) AS (StipBase*1,1) AS PrevisionePrevisione

FROMFROM personale personale

WHEREWHERE Livello = 5; Livello = 5;

Page 50: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5050

Funzione AVG Funzione AVG (average)(average) Restituisce la media aritmetica dei Restituisce la media aritmetica dei

valori di una colonna di tipo numerico valori di una colonna di tipo numerico Eventuali campi NULL non influiscono Eventuali campi NULL non influiscono

nel computo della media nel computo della media Può utilizzarsi con clausola WHERE e Può utilizzarsi con clausola WHERE e

DISTINCTDISTINCT

SELECT AVGSELECT AVG (StipBase) (StipBase)FROMFROM personale personale WHEREWHERE Funzione=‘Impiegato’; Funzione=‘Impiegato’;

Page 51: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5151

Funzioni MAX e MINFunzioni MAX e MIN

Restituiscono rispettivamente il max e il min tra i Restituiscono rispettivamente il max e il min tra i valori di una colonna valori di una colonna

Operano anche su attributi sia numerici che di tipo Operano anche su attributi sia numerici che di tipo caratterecarattere

Ignorano i campi NULLIgnorano i campi NULL

L’argomento di MIN e MAX può essere un’espressione L’argomento di MIN e MAX può essere un’espressione numericanumerica

Può utilizzarsi con clausola WHERE Può utilizzarsi con clausola WHERE

Page 52: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5252

Funzioni MAX e MIN Funzioni MAX e MIN (2)(2)

SELECT MINSELECT MIN(StipBase), (StipBase), MAXMAX (StipBase) (StipBase)

FROM FROM personale; personale;

SELECT MIN SELECT MIN (Cognome),(Cognome), MAX MAX (Cognome)(Cognome)

FROM FROM personale;personale;

Page 53: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5353

Funzioni di ordinamento Funzioni di ordinamento e raggruppamentoe raggruppamento

ORDER BY: criterio di ORDER BY: criterio di ordinamentoordinamento

GROUP BY: criterio di GROUP BY: criterio di raggruppamentoraggruppamento

Page 54: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5454

FUNZIONE ORDER BYFUNZIONE ORDER BY

Permette di ordinare il risultato di una Permette di ordinare il risultato di una query secondo i valori contenuti in una query secondo i valori contenuti in una o più colonne o più colonne

Opera sia su valori numerici che Opera sia su valori numerici che caratterecarattere

Può essere ascendente ASC (default) o Può essere ascendente ASC (default) o discendente DESCdiscendente DESC

Il valore NULL sarà posta all’inizio delle Il valore NULL sarà posta all’inizio delle sequenze crescenti, alla fine in quelle sequenze crescenti, alla fine in quelle decrescenti decrescenti

Page 55: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5555

FUNZIONE ORDER BY FUNZIONE ORDER BY (2)(2)EsercizioEsercizio

Utilizzando la tabella personale visualizzare Utilizzando la tabella personale visualizzare 1.1. EElenco alfabetico dei dipendenti con cognome, lenco alfabetico dei dipendenti con cognome,

nome, data_nascita e CF ordinato per cognome nome, data_nascita e CF ordinato per cognome e, in caso di cognomi uguali, per nome e, in caso di cognomi uguali, per nome

2.2. Elenco dei dipendenti con cognome e stipendio Elenco dei dipendenti con cognome e stipendio per stipendio decrescente e, a parità di per stipendio decrescente e, a parità di stipendio, per cognome crescentestipendio, per cognome crescente

Page 56: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5656

RispostaRisposta

SELECTSELECT Cognome, Nome, Cognome, Nome, CodFisc,NascitaCodFisc,Nascita

FROM FROM personale personale

ORDER BYORDER BY Cognome, Nome; Cognome, Nome;SELECTSELECT Cognome, StipBase Cognome, StipBase

FROMFROM personale personale ORDER BYORDER BY StipBase StipBase DESCDESC, ,

Cognome;Cognome;

Page 57: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5757

FUNZIONE GROUP BYFUNZIONE GROUP BY

Permette di raggruppare un insieme di righe Permette di raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate aventi lo stesso valore nelle colonne indicate (statistiche)(statistiche)

Produce una riga per ogni raggruppamento Produce una riga per ogni raggruppamento Se utilizzata con funzioni di aggregazione Se utilizzata con funzioni di aggregazione

produce un valore di raggruppamento per produce un valore di raggruppamento per ciascuna riga ciascuna riga

I valori NULL vengono raggruppati solo se si I valori NULL vengono raggruppati solo se si utilizza COUNT(*)utilizza COUNT(*)

Tutti gli attributi posti nella lista del SELECT Tutti gli attributi posti nella lista del SELECT devono essere inclusi nella clausola GROUP BY devono essere inclusi nella clausola GROUP BY oppure essere argomenti di una funzione di oppure essere argomenti di una funzione di aggregazioneaggregazione

Page 58: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5858

FUNZIONE GROUP BY FUNZIONE GROUP BY (2)(2)

Esercizio: utilizzando la tabella Esercizio: utilizzando la tabella personale visualizzare personale visualizzare la la lista lista delle funzioni dei dipendenti con la delle funzioni dei dipendenti con la somma degli stipendi e il numero somma degli stipendi e il numero dei dipendenti appartenenti alle dei dipendenti appartenenti alle diverse funzioni (tante righe diverse funzioni (tante righe quante sono le funzioni diverse)quante sono le funzioni diverse)

Page 59: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 5959

Risposta Risposta

SELECTSELECT Funzione, Funzione, SUMSUM (StipBase), (StipBase), COUNTCOUNT (*)(*)

FROMFROM personale personale

GROUP BYGROUP BY Funzione; Funzione;

Page 60: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6060

FUNZIONE GROUP BY FUNZIONE GROUP BY (3)(3)

Esercizio: Esercizio:

Visualizzare l’Visualizzare l’elenco dei livelli elenco dei livelli esistenti tra i dipendenti con esistenti tra i dipendenti con funzione di impiegato con il funzione di impiegato con il numero di dipendenti per ciascun numero di dipendenti per ciascun livello intestato come conteggio livello intestato come conteggio (una riga per ogni livello) (una riga per ogni livello)

Page 61: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6161

RispostaRisposta

SELECTSELECT Livello, Livello, COUNTCOUNT (Livello) (Livello) ASAS ConteggioConteggio

FROMFROM personale personale

WHEREWHERE Funzione=‘impiegato’ Funzione=‘impiegato’

GROUP BYGROUP BY Livello; Livello;

Page 62: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6262

Clausola HAVINGClausola HAVING

La clausola HAVING è, in genere, La clausola HAVING è, in genere, utilizzata con GROUP BY e serve ad utilizzata con GROUP BY e serve ad aggiungere dei controlli sui gruppi di aggiungere dei controlli sui gruppi di righe ottenuti righe ottenuti

Dopo che GROUP BY ha formato dei Dopo che GROUP BY ha formato dei raggruppamenti HAVING serve a raggruppamenti HAVING serve a visualizzare le righe di visualizzare le righe di raggruppamento che soddisfano raggruppamento che soddisfano determinate condizioni determinate condizioni

Page 63: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6363

Clausola HAVING (2)Clausola HAVING (2)

Esercizio: Visualizzare Esercizio: Visualizzare l’elenco delle funzioni dei dipendenti con lo l’elenco delle funzioni dei dipendenti con lo

stipendio medio per ciascuna funzione nella stipendio medio per ciascuna funzione nella quale ci siano almeno 2 dipendenti (non quale ci siano almeno 2 dipendenti (non vengono visualizzate funzioni con un solo vengono visualizzate funzioni con un solo dipendente)dipendente)

Page 64: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6464

RispostaRisposta

SELECTSELECT Funzione , Funzione , AVGAVG (StipBase) (StipBase)

FROMFROM personale personale

GROUP BYGROUP BY Funzione Funzione

HAVING COUNTHAVING COUNT(*) >1; (*) >1;

Page 65: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6565

Clausola HAVING (3)Clausola HAVING (3)

Esercizio: utilizzando la tabella Esercizio: utilizzando la tabella personale visualizzare personale visualizzare

l’l’elenco delle filiali con l’indicazione del elenco delle filiali con l’indicazione del numero dei dipendenti con qualifica numero dei dipendenti con qualifica impiegato, intestato come conteggio. impiegato, intestato come conteggio. Omettere le filiali ove questo numero è Omettere le filiali ove questo numero è <= 10<= 10

Page 66: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6666

RispostaRisposta

SELECTSELECT Filiale, Filiale, COUNTCOUNT (Filiale) (Filiale) ASAS Conteggio Conteggio

FROMFROM personale personale

WHEREWHERE Funzione=‘impiegato’ Funzione=‘impiegato’

GROUP BYGROUP BY Filiale Filiale

HAVING COUNTHAVING COUNT(*) >10; (*) >10;

Page 67: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6767

Clausola HAVING (4)Clausola HAVING (4)

HAVING opera un filtraggio come HAVING opera un filtraggio come WHERE ma:WHERE ma:– WHERE WHERE agisce sulle righe della agisce sulle righe della

tabella tabella – HAVINGHAVING sui risultati delle funzioni di sui risultati delle funzioni di

aggregazione applicati ai gruppi di aggregazione applicati ai gruppi di righe righe

Page 68: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6868

Riepilogo di SelectRiepilogo di Select

SelectSelect [ [all/distinctall/distinct] * | lista_campi] * | lista_campiFromFrom tabella|tabelle tabella|tabelle

[[wherewhere condizione] condizione]

[[Group byGroup by campo[,campo..]] campo[,campo..]]

[[havinghaving condizione] condizione]

[[order byorder by campo [asc|desc]] campo [asc|desc]]

Page 69: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 6969

Esecuzione di Select Esecuzione di Select (2)(2) L’esecuzione del comando select L’esecuzione del comando select

avviene secondo il seguente avviene secondo il seguente ordine di clausole: ordine di clausole:

1)1) clausola from clausola from definisce la definisce la tabella da cui accedere ai dati tabella da cui accedere ai dati

tab1tab1

tab3tab3

tab2tab2

tab1tab1

databasedatabase

fromfrom

Page 70: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7070

Esecuzione di Select Esecuzione di Select (3)(3) 2) clausola where 2) clausola where riduce la riduce la

selezione secondo una condizioneselezione secondo una condizione

wherewhere

Page 71: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7171

Esecuzione di Select Esecuzione di Select (4)(4) 3) clausola group by 3) clausola group by raggruppa raggruppa

le righe in base a certi valori le righe in base a certi valori uguali di certe colonne uguali di certe colonne

group bygroup by

Page 72: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7272

Esecuzione di Select Esecuzione di Select (5)(5) 4) clausola having 4) clausola having impone impone

condizioni sulla scelta delle righe condizioni sulla scelta delle righe

havinghaving

Page 73: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7373

Esecuzione di Select Esecuzione di Select (6)(6) 5) clausola select 5) clausola select seleziona le seleziona le

colonnecolonne

selectselect

Page 74: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7474

Esecuzione di Select Esecuzione di Select (7)(7) 6) clausola order by 6) clausola order by ordina le ordina le

righe selezionaterighe selezionate

selectselect

Page 75: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7575

Operatori di ricercaOperatori di ricerca

Operatori di confrontoOperatori di confronto

Operatori logici Operatori logici

BETWEEN: valore compreso fra…BETWEEN: valore compreso fra…

IN : appartenenza ad un insiemeIN : appartenenza ad un insieme

LIKE: ricerca con metacaratteriLIKE: ricerca con metacaratteri

IS : controllo dei campi NULL IS : controllo dei campi NULL

Page 76: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7676

Operatori di confrontoOperatori di confronto

== uguale uguale << minore minore >> maggiore maggiore <><> diverso diverso <=<= minore o uguale minore o uguale >=>= maggiore o uguale maggiore o uguale

Page 77: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7777

Operatori logiciOperatori logici

NOTNOT negazione logica negazione logica

a NOT aa NOT a

FF V V

VV F F

– L’uscita è il negato dell’ingressoL’uscita è il negato dell’ingresso

Page 78: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7878

Operatori logici (2)Operatori logici (2)

AND AND prodotto logico prodotto logico

a b a AND ba b a AND b

F F FF F F

F VF V F F

V F FV F F

V VV V V V

– L’uscita è vera se entrambi gli ingressi sono veriL’uscita è vera se entrambi gli ingressi sono veri

Page 79: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 7979

Operatori logici (3)Operatori logici (3)

OROR somma logica somma logica

a b a OR ba b a OR b

F F FF F F

F VF V V V

V F VV F V

V VV V V V

– L’uscita è vera se almeno un ingresso è veroL’uscita è vera se almeno un ingresso è vero

Page 80: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8080

Operatore BETWEENOperatore BETWEEN

Controlla un intervalloControlla un intervallo

Esercizio: Utilizzando la tabella Esercizio: Utilizzando la tabella personale visualizzare personale visualizzare l’ elenco dei dipendenti con cognome , l’ elenco dei dipendenti con cognome , nome e funzione, assunti da febbraio nome e funzione, assunti da febbraio ad agosto 2006ad agosto 2006

Page 81: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8181

RispostaRisposta

SELECTSELECT Cognome, Nome, Funzione Cognome, Nome, Funzione

FROMFROM personale personale

WHEREWHERE Assunto Assunto BETWEENBETWEEN 01/02/06 01/02/06 ANDAND 31/08/06 31/08/06

Page 82: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8282

Operatore INOperatore IN

Controlla l’appartenenza ad un Controlla l’appartenenza ad un insieme insieme

EsercizioEsercizio Visualizzare l’elenco completo di tutti i Visualizzare l’elenco completo di tutti i

dati dei dipendenti residenti nelle province dati dei dipendenti residenti nelle province CT, ME, PA, ENCT, ME, PA, EN

Page 83: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8383

RispostaRisposta

SELECTSELECT * *

FROMFROM Personale Personale

WHEREWHERE Prov Prov ININ (‘CT’,’ME’,’PA’, ‘En’); (‘CT’,’ME’,’PA’, ‘En’);

Page 84: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8484

Operatore LIKEOperatore LIKE

Permette l’utilizzo di caratteri jolly Permette l’utilizzo di caratteri jolly o metacaratteri:o metacaratteri:__ (underscore) (underscore) singolo carattere qualunque singolo carattere qualunque

%% (percento) (percento) stringa qualunque stringa qualunque

LIKELIKE ‘abc%’ ‘abc%’ stringhe che iniziano con abc stringhe che iniziano con abc

LIKELIKE ‘abc_’ ‘abc_’ stringhe di 4 char che iniziano con abc stringhe di 4 char che iniziano con abc

LIKELIKE ‘%abc%’ ‘%abc%’ stringhe che contengono abc stringhe che contengono abc

LIKELIKE ‘%abc’ ‘%abc’ stringhe che terminano con abc stringhe che terminano con abc

Page 85: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8585

Operatore LIKE (2)Operatore LIKE (2)

Esercizio: Visualizzare l’elenco con cognome e Esercizio: Visualizzare l’elenco con cognome e filiale dei dipendenti aventi cognome che filiale dei dipendenti aventi cognome che inizia con ‘Mac’inizia con ‘Mac’

Page 86: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8686

RispostaRisposta

SELECTSELECT Cognome, Filiale Cognome, Filiale

FROMFROM Personale Personale

WHEREWHERE Cognome Cognome LIKELIKE ‘Mac%’; ‘Mac%’;

Page 87: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8787

Operatore ISOperatore IS

E’ utilizzato con NULL oppure con NOT E’ utilizzato con NULL oppure con NOT NULL per verificare se un certo campo NULL per verificare se un certo campo è o no NULL:è o no NULL:

SELECTSELECT Cognome, Nome Cognome, Nome

FROMFROM personale personale

WHEREWHERE Prov Prov IS NOT NULLIS NOT NULL

elenco dei dipendenti nel cui record è indicata la elenco dei dipendenti nel cui record è indicata la provinciaprovincia

Page 88: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8888

SubquerySubquery

Il comando Il comando selectselect permette di permette di inserire un altro comando select inserire un altro comando select all’interno della struttura di un all’interno della struttura di un comando select creando comando select creando interrogazioni nidificate interrogazioni nidificate subquery o select internasubquery o select interna

Page 89: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 8989

Subquery (2)Subquery (2)

La condizione scritta dopo il La condizione scritta dopo il where confronta il valore di un where confronta il valore di un attributo con il risultato di un altro attributo con il risultato di un altro comando selectcomando select

Una subquery può restituireUna subquery può restituire– Un valore singoloUn valore singolo– Nessun valoreNessun valore– Un insieme di valoriUn insieme di valori

Page 90: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9090

Subquery (3)Subquery (3)

La clausola La clausola selectselect di subquery di subquery– Può far riferimento a una singola Può far riferimento a una singola

colonna o ad una espressione colonna o ad una espressione – Non può contenere Non può contenere distintcdistintc– Non può contenere Non può contenere order byorder by– Può avere altre Può avere altre selectselect dentro dentro wherewhere

e e havinghaving

Page 91: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9191

Subquery sempliciSubquery semplici

Dapprima viene valutata la query Dapprima viene valutata la query interna il cui risultato viene interna il cui risultato viene utilizzato dalla query esternautilizzato dalla query esterna

La query interna deve fornire La query interna deve fornire pertanto fornire un risultato che pertanto fornire un risultato che possa essere valutato in termini possa essere valutato in termini booleani dalla where esterna booleani dalla where esterna

Page 92: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9292

Subquery semplici (2)Subquery semplici (2)

Elenco nominativo dei dipendenti con Elenco nominativo dei dipendenti con StipBase > della media degli stipendi StipBase > della media degli stipendi

SELECT Cognome, NomeSELECT Cognome, Nome

From From personalepersonale

Where Where StipBase >StipBase > (select avg (select avg (Stipbase)(Stipbase)

From From personale); personale);

Page 93: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9393

Subquery semplici (3)Subquery semplici (3)

Esercizio: visualizzare l’elenco con Esercizio: visualizzare l’elenco con cognome, nome e descrizione della cognome, nome e descrizione della filiale in cui operano dei dipendenti filiale in cui operano dei dipendenti aventi Stipendio pari al max per la aventi Stipendio pari al max per la funzione impiegato. L’elenco va funzione impiegato. L’elenco va visualizzato ordinato per cognome e visualizzato ordinato per cognome e nome. nome.

Page 94: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9494

RispostaRisposta

SELECT SELECT Cognome, Nome, DescrizioneCognome, Nome, Descrizione

From From personale, dipendenzapersonale, dipendenza

Where Where Filiale=CodFilFiliale=CodFil

AndAnd StipBase = StipBase = ((select maxselect max(Stipbase)(Stipbase)

FromFrom personale personale

wherewhere Funzione=’impiegato’)Funzione=’impiegato’)

Order byOrder by Cognome, Nome; Cognome, Nome;

Page 95: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9595

Subquery con anySubquery con any

Il predicato Il predicato anyany indica che la indica che la subquery può restituire subquery può restituire – 00– 11– Insieme di valoriInsieme di valori

E che la condizione di ricerca è E che la condizione di ricerca è verificata se il confronto è vero verificata se il confronto è vero per almeno uno dei valori per almeno uno dei valori restituiti restituiti

Page 96: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9696

Subquery con any (2)Subquery con any (2)

– La condizione di ricerca è falsa se la La condizione di ricerca è falsa se la subquery restituisce un insieme subquery restituisce un insieme vuoto oppure se il confronto è falso vuoto oppure se il confronto è falso per ciascuno dei valori restituiti dalla per ciascuno dei valori restituiti dalla subquerysubquery

Page 97: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9797

Subquery con any (3)Subquery con any (3)

Esercizio: visualizzare l’elenco Esercizio: visualizzare l’elenco con cognome nome e funzione con cognome nome e funzione dei dipendenti non impiegati e dei dipendenti non impiegati e aventi Stipbase > di uno qualsiasi aventi Stipbase > di uno qualsiasi di quello degli impiegatidi quello degli impiegati

Page 98: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9898

RispostaRisposta

SELECT SELECT Cognome, Nome,FunzioneCognome, Nome,Funzione

From From personalepersonale

Where Where Funzione <> ‘impiegato’Funzione <> ‘impiegato’

And And StipBase >StipBase > any any ((select select StipbaseStipbase

From From personalepersonale

wherewhere funzione=‘impiegato’);funzione=‘impiegato’);

Page 99: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 9999

Subquery con allSubquery con all

Il predicato Il predicato allall indica che la indica che la subquery può restituire subquery può restituire – 00– 11– Insieme di valoriInsieme di valori

E che la condizione di ricerca è E che la condizione di ricerca è verificata se il confronto è vero verificata se il confronto è vero per tutti i valori restituiti per tutti i valori restituiti

Page 100: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 100100

Subquery con all (2)Subquery con all (2)

– La condizione di ricerca è falsa se il La condizione di ricerca è falsa se il confronto è falso per almeno uno tra confronto è falso per almeno uno tra i valori restituiti dalla subqueryi valori restituiti dalla subquery

Page 101: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 101101

Subquery con all (3)Subquery con all (3)

Esercizio: visualizzare l’elenco Esercizio: visualizzare l’elenco con cognome, nome e funzione con cognome, nome e funzione dei dipendenti non impiegati dei dipendenti non impiegati aventi Stipbase > a quello di tutti aventi Stipbase > a quello di tutti gli impiegati gli impiegati

Page 102: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 102102

RispostaRisposta

SELECT SELECT Cognome, Nome,FunzioneCognome, Nome,Funzione

From From personalepersonale

Where Where Funzione <> ‘impiegato’Funzione <> ‘impiegato’

And And StipBase >StipBase > all all ((select select StipbaseStipbase

From From personalepersonale

wherewhere Funzione=‘impiegato’);Funzione=‘impiegato’);

Page 103: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 103103

Subquery con INSubquery con IN

Il predicato Il predicato IN IN serve a controllare serve a controllare se il valore di un attributo è se il valore di un attributo è compreso fra quelli restituiti dalla compreso fra quelli restituiti dalla subquery effettuata con la select subquery effettuata con la select nidificatanidificata

E’ possibile utilizzare E’ possibile utilizzare NOT IN NOT IN per per ottenere la condizione opposta ottenere la condizione opposta

Page 104: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 104104

Subquery con IN (2)Subquery con IN (2)

Esercizio: visualizzare l’elenco con Esercizio: visualizzare l’elenco con cognome e nome dei dipendenti che cognome e nome dei dipendenti che operano nelle filiali con più di 20 operano nelle filiali con più di 20 dipendentidipendenti

Page 105: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 105105

RispostaRisposta

SELECT SELECT Cognome, NomeCognome, NomeFrom From personalepersonaleWhere Where Filiale Filiale ININ ( (select select FilialeFiliale

From From personalepersonalegroup bygroup by Filiale Filiale Having count(*) Having count(*)

>20);>20);

Page 106: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 106106

Equivalenze IN – ANY - ALLEquivalenze IN – ANY - ALL

Si osservi che la condizione Si osservi che la condizione

wherewhere attributo attributo ININ ( (selectselect…)…)

Equivale a: Equivale a: wherewhere attributo = attributo = ANYANY ( (selectselect…)…)

•Analogamente la condizione Analogamente la condizione wherewhere attributo attributo NOTNOT IN IN ((selectselect…)…)

Equivale a: Equivale a: wherewhere attributo < > attributo < > ALLALL ( (selectselect…)…)

Page 107: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 107107

Subquery con existsSubquery con exists

Il predicato exists controlla se Il predicato exists controlla se vengono restituite righe vengono restituite righe dall’esecuzione della subquery dall’esecuzione della subquery

La condizione è La condizione è – vera se la select nidificata produce vera se la select nidificata produce

una o più righe una o più righe – falsa se restituisce un insieme vuoto falsa se restituisce un insieme vuoto

Page 108: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 108108

Subquery con exists Subquery con exists (2)(2) Nelle subquery con exists le Nelle subquery con exists le

colonne sono irrilevanti pertanto colonne sono irrilevanti pertanto nella subquery si utilizza il nella subquery si utilizza il carattere *carattere *

E’ possibile utilizzare la forma E’ possibile utilizzare la forma negativa NOT EXISTSnegativa NOT EXISTS

Page 109: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 109109

Subquery con exists Subquery con exists (3)(3) Esercizio: Visualizzare l’ elenco Esercizio: Visualizzare l’ elenco

cognome e nome dei dipendenti se cognome e nome dei dipendenti se esistono dipendenti di livello 8esistono dipendenti di livello 8

Page 110: Esempi SQL - Prof Ing G. La Rosa1 Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia

Esempi SQL - Prof Ing G. La RosaEsempi SQL - Prof Ing G. La Rosa 110110

RispostaRisposta

SELECT SELECT Cognome, NomeCognome, Nome

From From personalepersonale

Where exists Where exists ( (select * select *

From From personalepersonale

wherewhere livello=8);livello=8);