La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Elaborazione dati informatici

Presentazioni simili


Presentazione sul tema: "Elaborazione dati informatici"— Transcript della presentazione:

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

2 Linguaggio SQL Prof Ing Gaetano La Rosa Web: Esempi SQL - Prof Ing G. La Rosa

3 Esempi SQL - Prof Ing G. La Rosa
SQL: caratteri SQL utilizza i caratteri alfabetici; Cifre decimali; Operatori aritmetici (+ - * /); Operatori di confronto (< >); Caratteri di sintassi (, ;); Esempi SQL - Prof Ing G. La Rosa

4 Esempi SQL - Prof Ing G. La Rosa
SQL: identificatori Gli identificatori sono i nomi di tabelle o di attributi Sono costituiti da sequenze di caratteri di lunghezza non superiore a 18 Devono iniziare con una lettera e possono contenere il carattere ‘_’ Per separare il nome tabella dal nome attributo si utilizza il carattere ‘.’ Nometabella.nomeattributo Esempi SQL - Prof Ing G. La Rosa

5 Esempi SQL - Prof Ing G. La Rosa
SQL: tipi di dati Nella dichiarazione della struttura di una tabella occorre specificare il tipo di dati per ogni attributo Alcuni tipi standard: character(n)  stringa n char Character  stringa 1 char Date  data nel formato aaaa/mm/gg Time  ora nel formato hh:mm Integer(p)  intero con precisione p Smallint  intero con precisione 5 Integer  intero con precisione 10 Esempi SQL - Prof Ing G. La Rosa

6 Esempi SQL - Prof Ing G. La Rosa
SQL: tipi di dati (2) Decimal(p,s)  decimale con precisione p e cifre decimali s Real numero reale con precisione 7 Float(p)  numero reale con mantissa di precisione p Float  numero reale con mantissa di precisione 15 Abbreviazioni Char(n) anziché character(n) Char anziché character Int(p) anziché integer(p) Dec(p,s) anziché decimal(p,s) NB alcune versioni SQL prevedono definizioni tipi lievemente diverse Esempi SQL - Prof Ing G. La Rosa

7 Esempi SQL - Prof Ing G. La Rosa
Costanti e operatori Le costanti stringa sono delimitate da apici: ‘stringa’ Gli attributi che non hanno un valore definito assumono il valore NULL (diverso sia da 0 che da stringa vuota) Sono previsti gli operatori NOT, AND, OR Clausola ‘not null’: va inserita accanto ai nomi degli attributi che non possono prevedere valori null (ad esempio le chiavi) Esempi SQL - Prof Ing G. La Rosa

8 Comandi DDL: Data Definition Language
Permettono di implementare il modello logico dei dati sulle memorie di massa. Nelle più recenti versioni di DBMS dette operazioni sono effettuate con interfacce interattive senza l’uso di comandi specifici. Esempi SQL - Prof Ing G. La Rosa

9 Esempi SQL - Prof Ing G. La Rosa
Comando CREATE TABLE Utilizzato per la creazione di tabelle Va seguito dal nome della tabella e dall’elenco degli attributi: CREATE TABLE personale (Matricola char(5), Cognome char(30), Nome char(30), CodFis char(16) not null, Assunto date, Filiale smallint, Funzione char(15), Livello smallint, StipBase integer, Via char(25), Cap char(5), Citta char(20), Prov char(2) ); Esempi SQL - Prof Ing G. La Rosa

10 Modifica di una tabella creata
ALTER TABLE: permette di modificare una tabella con aggiunta (ADD) o rimozione (DROP) di attributi: ALTER TABLE personale ADD Nascita date; ALTER TABLE personale DROP StipBase; Esempi SQL - Prof Ing G. La Rosa

11 Creazione di indici su tabelle
CREATE INDEX: permette la creazione di un nuovo indice su una tabella esistente su specifici attributi: CREATE INDEX Ipersonale ON personale (cognome, Nome); Esempi SQL - Prof Ing G. La Rosa

12 Cancellazione di tabelle e indici: DROP
DROP TABLE personale; DROP INDEX Ipersonale ON personale; Esempi SQL - Prof Ing G. La Rosa

13 Comandi DML: Data Manipulation Language
Permettono di modificare i valori degli attributi mediante inserimento, modifica e cancellazione. INSERT, UPDATE, DELETE Anche questi comandi in alcune versioni di DBMS possono risultare nascosti all’utente grazie all’utilizzo di maschere e interfacce visuali Esempi SQL - Prof Ing G. La Rosa

14 Esempi SQL - Prof Ing G. La Rosa
Comandi DML: INSERT INSERT INTO personale (Matricola, Cognome, Nome, CodFis, Nascita, assunto, Filiale, Funzione, Livello, StipBase, Via, Cap, Citta, Prov) VALUES (‘CS342’,’Pillera’, ‘Luigi’, ‘PLLLGU…’, ………,’CT’); Esempi SQL - Prof Ing G. La Rosa

15 Esempi SQL - Prof Ing G. La Rosa
Comandi DML: UPDATE UPDATE personale SET Livello=6, SET Stipbase=1260, WHERE matricola=‘CS212’; SET Stipbase=Stipbase*1.05, WHERE livello >5; Esempi SQL - Prof Ing G. La Rosa

16 Esempi SQL - Prof Ing G. La Rosa
Comandi DML: DELETE DELETE FROM personale WHERE Matricola=‘CS102’; WHERE Stipbase < 500; Esempi SQL - Prof Ing G. La Rosa

17 Comandi di interrogazione: SELECT
SELECT [ALL| DISTINCT] Attributi FROM Tabelle [WHERE Condizione]; Esempi SQL - Prof Ing G. La Rosa

18 QUERY su TABELLA studenti
Esempi SQL - Prof Ing G. La Rosa

19 QUERY su TABELLA studenti (2)
SELECT Indirizzo, Telefono FROM Studenti WHERE Nome=‘Teo Verdi’ Esempi SQL - Prof Ing G. La Rosa

20 Esempi SQL - Prof Ing G. La Rosa
Altri esempi: Utilizzando il database personale 1 Visualizzare Cognome, nome e codice fiscale del personale avente qualifica impiegato 2 Visualizzare tutti i dati del personale avente residenza in Milano Esempi SQL - Prof Ing G. La Rosa

21 Esempi SQL - Prof Ing G. La Rosa
Risposte 1) SELECT Cognome, Nome, CodFis FROM personale WHERE Funzione=‘impiegato’; 2) SELECT * WHERE Prov=‘MI’; Esempi SQL - Prof Ing G. La Rosa

22 Esempi SQL - Prof Ing G. La Rosa
Clausola distinct SELECT Funzione FROM personale; produce l’elenco di tutte le professioni dei dipendenti ripetendo la stessa professione in righe diverse quanti sono i dipendenti che svolgono quella funzione SELECT DISTINCT Funzione produce l’elenco di tutte le professioni dei dipendenti specificando una sola volta le singole funzioni presenti Esempi SQL - Prof Ing G. La Rosa

23 Esempi SQL - Prof Ing G. La Rosa
Clausola AS La clausola AS serve per assegnare l’intestazione della tabella che si ottiene a seguito di un comando SELECT Esempi: Utilizzando il database personale visualizzare 1 L’ elenco di tutte le province di provenienza dei dipendenti con intestazione Provincia 2 l’ elenco di tutti i dipendenti con cognome, nome, stipendio attuale con intestazione attuale e valore previsionale in caso di aumento del 5% con intestazione Nuovo. (Il database non deve subire modifiche) Esempi SQL - Prof Ing G. La Rosa

24 Esempi SQL - Prof Ing G. La Rosa
Risposte 1 SELECT DISTINCT Prov AS Provincia FROM personale; 2 SELECT Cognome, Nome, Stipbase AS Attuale, StipBase*1.05 AS Nuovo FROM personale; Esempi SQL - Prof Ing G. La Rosa

25 Query parametriche (MSAccess)
SELECT Cognome, Nome FROM personale WHERE Funzione =‘impiegato’; Query fissa su attributo Funzione= ‘impiegato’ WHERE Funzione =[quale funzione?]; Query parametrica su attributo Funzione Il sistema chiederà quale funzione? Esempi SQL - Prof Ing G. La Rosa

26 Capacità del comando SQL SELECT
Selezione Proiezione Tabella 1 Tabella 1 Join Tabella 1 Tabella 2 Esempi SQL - Prof Ing G. La Rosa

27 Esempi SQL - Prof Ing G. La Rosa
Selezione Selezione  consente di ricavare da una relazione un’altra relazione contenente solo le righe che soddisfano una certa condizione Si realizza con la clausola WHERE SELECT * FROM personale WHERE Funzione = ‘dirigente’; Esempi SQL - Prof Ing G. La Rosa

28 Esempi SQL - Prof Ing G. La Rosa
Proiezione Proiezione  consente di ricavare da una relazione un’altra relazione contenente solo alcune colonne della relazione di partenza Si realizza indicando accanto a SELECT gli attributi richiesti SELECT Cognome, Nome FROM personale; Esempi SQL - Prof Ing G. La Rosa

29 Esempi SQL - Prof Ing G. La Rosa
Congiunzione - Join Congiunzione  consente la congiunzione di più tabelle attraverso degli attributi comuni CREATE TABLE personale (Matricola char(5) not null, Cognome char(30), Nome char(30), CodFis char(16) not null, Assunto date, Filiale smallint, Funzione char(15), Livello smallint, StipBase integer, Via char(25), Cap char(5), Citta char(20), Prov char(2) ); CREATE TABLE dipendenza (CodFil smallint not null Descrizione char(20) Indirizzo char(25) ); Fra dipendenza e personale esiste un’associazione 1n pertanto la chiave di dipendenza (CodFil) viene posta come chiave esterna in personale (Filiale) Esempi SQL - Prof Ing G. La Rosa

30 Esempi SQL - Prof Ing G. La Rosa
Congiunzione – Join (2) 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 filiale nella quale lavorano Esempi SQL - Prof Ing G. La Rosa

31 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT * FROM personale, dipendenza WHERE Filiale=CodFil; oppure SELECT * FROM personale, dipendenza WHERE personale.Filiale = dipendenza.CodFil; oppure SELECT * FROM personale INNER JOIN dipendenza ON personale.Filiale = dipendenza.CodFil; Esempi SQL - Prof Ing G. La Rosa

32 Congiunzione – Left/Right Join
La forma SELECT * FROM personale INNER JOIN dipendenza ON personale.Filiale = dipendenza.CodFil; Permette di selezionare le righe delle due tabelle con l’attributo comune  INNER JOIN o EQUI JOIN. Se si desidera visualizzare altre informazioni di record per i quali non sussiste la corrispondenza fra le due tabelle è possibile utilizzare left o right prima di join a seconda se i dati da visualizzare stanno posti sulla matrice di destra o sinistra rispetto al join Esempi SQL - Prof Ing G. La Rosa

33 Congiunzione – Left Join
SELECT * FROM personale LEFT JOIN dipendenza ON personale.Filiale = dipendenza.CodFil; Permette di selezionare le righe delle due tabelle con l’attributo comune e gli eventuali campi della tabella personale (tabella di sinistra) non aventi corrispondenze nella tabella di destra. Esempi SQL - Prof Ing G. La Rosa

34 Congiunzione –Right Join
SELECT * FROM personale RIGHT JOIN dipendenza ON personale.Filiale = dipendenza.CodFil; Permette di selezionare le righe delle due tabelle con l’attributo comune e gli eventuali campi della tabella dipendenza (tabella di destra) non aventi corrispondenze nella tabella di sinistra. Esempi SQL - Prof Ing G. La Rosa

35 Congiunzione – Self-Join
La congiunzione è detta di self-Join quando opera su una medesima tabella 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 dipendente, saranno contenute sulle medesima tabella personale. Esempi SQL - Prof Ing G. La Rosa

36 Congiunzione – Self-Join (2)
CREATE TABLE personale (Matricola char(5), Cognome char(30), Assunto date, Dirigente char(5), Filiale smallint, Prov char(2) ); Per effettuare una self-join si utilizzano gli alias sui nomi delle tabelle utilizzando la clausola AS. Esempio: Utilizzando il self join e la tabella personale con il campo dirigente, visualizzare l’elenco dei dipendenti con i dati cognome e nome del dipendente e indicazione del cognome del relativo dirigente Esempi SQL - Prof Ing G. La Rosa

37 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Tab1.Cognome, Tab1.Nome, Tab2.Cognome FROM personale AS Tab1, personale AS Tab2 WHERE Tab1.Dirigente = Tab2.Matricola ; Esempi SQL - Prof Ing G. La Rosa

38 Esempi SQL - Prof Ing G. La Rosa
Operatori logici AND, OR, NOT Esercizio: Realizzare una Query per ottenere elenco dei dipendenti con funzione impiegato con cognome, nome, descrizione e indirizzo della filiale dove lavorano: Esempi SQL - Prof Ing G. La Rosa

39 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Nome, Descrizione, indirizzo FROM personale, dipendenza WHERE Funzione=‘impiegato’ AND Filiale=CodFil; …. O per maggiore chiarezza: Esempi SQL - Prof Ing G. La Rosa

40 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT personale.Cognome, personale.Nome, dipendenza.Descrizione, dipendenza.indirizzo FROM personale, dipendenza WHERE personale.Funzione=‘impiegato’ AND personale.Filiale=dipendenza.CodFil; Esempi SQL - Prof Ing G. La Rosa

41 Funzioni di aggregazione
COUNT: conteggio SUM: somma AVG: media MIN: minimo MAX: massimo Esempi SQL - Prof Ing G. La Rosa

42 Esempi SQL - Prof Ing G. La Rosa
Funzione COUNT Conta le righe presenti in una tabella Sintassi: COUNT(arg) Arg= *  tutte le righe Arg= attributo  tutte le righe con att !=NULL COUNT permette di determinare la cardinalità di una relazione Può utilizzarsi con clausola WHERE Esempi SQL - Prof Ing G. La Rosa

43 Esempi SQL - Prof Ing G. La Rosa
Funzione COUNT (2) Esercizio Utilizzando la funzione count visualizzare: 1 Il numero di dipendenti presenti nel database personale; 2 il numero di dipendenti aventi uno specifico livello assegnato (ovvero con campo !=Null) 3 il numero di dipendenti residenti nella provincia di Catania Esempi SQL - Prof Ing G. La Rosa

44 Esempi SQL - Prof Ing G. La Rosa
Risposta 1 SELECT COUNT (*) FROM personale; 2 SELECT COUNT(livello) 3 SELECT COUNT(*) FROM personale WHERE Prov=‘CT’; Esempi SQL - Prof Ing G. La Rosa

45 Esempi SQL - Prof Ing G. La Rosa
Funzione COUNT (3) Esercizio Utilizzando la clausola DISTINCT visualizzare il numero di differenti livelli che risiedono nella provincia di CT. Intestare l’uscita con livelli. Esempi SQL - Prof Ing G. La Rosa

46 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT COUNT (DISTINCT livello) AS livelli FROM personale WHERE Prov=‘CT; Esempi SQL - Prof Ing G. La Rosa

47 Esempi SQL - Prof Ing G. La Rosa
Funzione SUM Restituisce la somma dei valori di una colonna di tipo numerico Eventuali campi NULL vanno considerati come 0 Può utilizzarsi con clausola WHERE e DISTINCT Esempi SQL - Prof Ing G. La Rosa

48 Esempi SQL - Prof Ing G. La Rosa
Funzione SUM (2) Esercizio Utilizzando l’archivio personale visualizzare la Somma degli stipendi base (stipbase) appartenenti al livello 5 La somma degli stipendi base del livello 5 qualora si effettui un aumento del 10%, intestando la colonna come Previsione Esempi SQL - Prof Ing G. La Rosa

49 Esempi SQL - Prof Ing G. La Rosa
Risposta 1 SELECT SUM (StipBase) FROM personale WHERE Livello=5; 2 SELECT SUM (StipBase*1,1) AS Previsione FROM personale WHERE Livello = 5; Esempi SQL - Prof Ing G. La Rosa

50 Funzione AVG (average)
Restituisce la media aritmetica dei valori di una colonna di tipo numerico Eventuali campi NULL non influiscono nel computo della media Può utilizzarsi con clausola WHERE e DISTINCT SELECT AVG (StipBase) FROM personale WHERE Funzione=‘Impiegato’; Esempi SQL - Prof Ing G. La Rosa

51 Esempi SQL - Prof Ing G. La Rosa
Funzioni MAX e MIN Restituiscono rispettivamente il max e il min tra i valori di una colonna Operano anche su attributi sia numerici che di tipo carattere Ignorano i campi NULL L’argomento di MIN e MAX può essere un’espressione numerica Può utilizzarsi con clausola WHERE Esempi SQL - Prof Ing G. La Rosa

52 Esempi SQL - Prof Ing G. La Rosa
Funzioni MAX e MIN (2) SELECT MIN(StipBase), MAX (StipBase) FROM personale; SELECT MIN (Cognome), MAX (Cognome) Esempi SQL - Prof Ing G. La Rosa

53 Funzioni di ordinamento e raggruppamento
ORDER BY: criterio di ordinamento GROUP BY: criterio di raggruppamento Esempi SQL - Prof Ing G. La Rosa

54 Esempi SQL - Prof Ing G. La Rosa
FUNZIONE ORDER BY Permette di ordinare il risultato di una query secondo i valori contenuti in una o più colonne Opera sia su valori numerici che carattere Può essere ascendente ASC (default) o discendente DESC Il valore NULL sarà posta all’inizio delle sequenze crescenti, alla fine in quelle decrescenti Esempi SQL - Prof Ing G. La Rosa

55 Esempi SQL - Prof Ing G. La Rosa
FUNZIONE ORDER BY (2) Esercizio Utilizzando la tabella personale visualizzare Elenco alfabetico dei dipendenti con cognome, nome, data_nascita e CF ordinato per cognome e, in caso di cognomi uguali, per nome Elenco dei dipendenti con cognome e stipendio per stipendio decrescente e, a parità di stipendio, per cognome crescente Esempi SQL - Prof Ing G. La Rosa

56 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Nome, CodFisc,Nascita FROM personale ORDER BY Cognome, Nome; SELECT Cognome, StipBase FROM personale ORDER BY StipBase DESC, Cognome; Esempi SQL - Prof Ing G. La Rosa

57 Esempi SQL - Prof Ing G. La Rosa
FUNZIONE GROUP BY Permette di raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate (statistiche) Produce una riga per ogni raggruppamento Se utilizzata con funzioni di aggregazione produce un valore di raggruppamento per ciascuna riga I valori NULL vengono raggruppati solo se si utilizza COUNT(*) Tutti gli attributi posti nella lista del SELECT devono essere inclusi nella clausola GROUP BY oppure essere argomenti di una funzione di aggregazione Esempi SQL - Prof Ing G. La Rosa

58 Esempi SQL - Prof Ing G. La Rosa
FUNZIONE GROUP BY (2) Esercizio: utilizzando la tabella personale visualizzare la lista delle funzioni dei dipendenti con la somma degli stipendi e il numero dei dipendenti appartenenti alle diverse funzioni (tante righe quante sono le funzioni diverse) Esempi SQL - Prof Ing G. La Rosa

59 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Funzione, SUM (StipBase), COUNT (*) FROM personale GROUP BY Funzione; Esempi SQL - Prof Ing G. La Rosa

60 Esempi SQL - Prof Ing G. La Rosa
FUNZIONE GROUP BY (3) Esercizio: Visualizzare l’elenco dei livelli esistenti tra i dipendenti con funzione di impiegato con il numero di dipendenti per ciascun livello intestato come conteggio (una riga per ogni livello) Esempi SQL - Prof Ing G. La Rosa

61 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Livello, COUNT (Livello) AS Conteggio FROM personale WHERE Funzione=‘impiegato’ GROUP BY Livello; Esempi SQL - Prof Ing G. La Rosa

62 Esempi SQL - Prof Ing G. La Rosa
Clausola HAVING La clausola HAVING è, in genere, utilizzata con GROUP BY e serve ad aggiungere dei controlli sui gruppi di righe ottenuti Dopo che GROUP BY ha formato dei raggruppamenti HAVING serve a visualizzare le righe di raggruppamento che soddisfano determinate condizioni Esempi SQL - Prof Ing G. La Rosa

63 Esempi SQL - Prof Ing G. La Rosa
Clausola HAVING (2) Esercizio: Visualizzare l’elenco delle funzioni dei dipendenti con lo stipendio medio per ciascuna funzione nella quale ci siano almeno 2 dipendenti (non vengono visualizzate funzioni con un solo dipendente) Esempi SQL - Prof Ing G. La Rosa

64 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Funzione , AVG (StipBase) FROM personale GROUP BY Funzione HAVING COUNT(*) >1; Esempi SQL - Prof Ing G. La Rosa

65 Esempi SQL - Prof Ing G. La Rosa
Clausola HAVING (3) Esercizio: utilizzando la tabella personale visualizzare l’elenco delle filiali con l’indicazione del numero dei dipendenti con qualifica impiegato, intestato come conteggio. Omettere le filiali ove questo numero è <= 10 Esempi SQL - Prof Ing G. La Rosa

66 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Filiale, COUNT (Filiale) AS Conteggio FROM personale WHERE Funzione=‘impiegato’ GROUP BY Filiale HAVING COUNT(*) >10; Esempi SQL - Prof Ing G. La Rosa

67 Esempi SQL - Prof Ing G. La Rosa
Clausola HAVING (4) HAVING opera un filtraggio come WHERE ma: WHERE agisce sulle righe della tabella HAVING sui risultati delle funzioni di aggregazione applicati ai gruppi di righe Esempi SQL - Prof Ing G. La Rosa

68 Esempi SQL - Prof Ing G. La Rosa
Riepilogo di Select Select [all/distinct] * | lista_campi From tabella|tabelle [where condizione] [Group by campo[,campo..]] [having condizione] [order by campo [asc|desc]] Esempi SQL - Prof Ing G. La Rosa

69 Esecuzione di Select (2)
L’esecuzione del comando select avviene secondo il seguente ordine di clausole: 1) clausola from  definisce la tabella da cui accedere ai dati tab1 from tab1 tab3 tab2 database Esempi SQL - Prof Ing G. La Rosa

70 Esecuzione di Select (3)
2) clausola where  riduce la selezione secondo una condizione where Esempi SQL - Prof Ing G. La Rosa

71 Esecuzione di Select (4)
3) clausola group by  raggruppa le righe in base a certi valori uguali di certe colonne group by Esempi SQL - Prof Ing G. La Rosa

72 Esecuzione di Select (5)
4) clausola having  impone condizioni sulla scelta delle righe having Esempi SQL - Prof Ing G. La Rosa

73 Esecuzione di Select (6)
5) clausola select  seleziona le colonne select Esempi SQL - Prof Ing G. La Rosa

74 Esecuzione di Select (7)
6) clausola order by  ordina le righe selezionate select Esempi SQL - Prof Ing G. La Rosa

75 Esempi SQL - Prof Ing G. La Rosa
Operatori di ricerca Operatori di confronto Operatori logici BETWEEN: valore compreso fra… IN : appartenenza ad un insieme LIKE: ricerca con metacaratteri IS : controllo dei campi NULL Esempi SQL - Prof Ing G. La Rosa

76 Operatori di confronto
=  uguale <  minore >  maggiore <>  diverso <=  minore o uguale >=  maggiore o uguale Esempi SQL - Prof Ing G. La Rosa

77 Esempi SQL - Prof Ing G. La Rosa
Operatori logici NOT  negazione logica a NOT a F V V F L’uscita è il negato dell’ingresso Esempi SQL - Prof Ing G. La Rosa

78 Esempi SQL - Prof Ing G. La Rosa
Operatori logici (2) AND  prodotto logico a b a AND b F F F F V F V F F V V V L’uscita è vera se entrambi gli ingressi sono veri Esempi SQL - Prof Ing G. La Rosa

79 Esempi SQL - Prof Ing G. La Rosa
Operatori logici (3) OR  somma logica a b a OR b F F F F V V V F V V V V L’uscita è vera se almeno un ingresso è vero Esempi SQL - Prof Ing G. La Rosa

80 Esempi SQL - Prof Ing G. La Rosa
Operatore BETWEEN Controlla un intervallo Esercizio: Utilizzando la tabella personale visualizzare l’ elenco dei dipendenti con cognome , nome e funzione, assunti da febbraio ad agosto 2006 Esempi SQL - Prof Ing G. La Rosa

81 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Nome, Funzione FROM personale WHERE Assunto BETWEEN 01/02/06 AND 31/08/06 Esempi SQL - Prof Ing G. La Rosa

82 Esempi SQL - Prof Ing G. La Rosa
Operatore IN Controlla l’appartenenza ad un insieme Esercizio  Visualizzare l’elenco completo di tutti i dati dei dipendenti residenti nelle province CT, ME, PA, EN Esempi SQL - Prof Ing G. La Rosa

83 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT * FROM Personale WHERE Prov IN (‘CT’,’ME’,’PA’, ‘En’); Esempi SQL - Prof Ing G. La Rosa

84 Esempi SQL - Prof Ing G. La Rosa
Operatore LIKE Permette l’utilizzo di caratteri jolly o metacaratteri: _ (underscore)  singolo carattere qualunque % (percento)  stringa qualunque LIKE ‘abc%’  stringhe che iniziano con abc LIKE ‘abc_’  stringhe di 4 char che iniziano con abc LIKE ‘%abc%’  stringhe che contengono abc LIKE ‘%abc’  stringhe che terminano con abc Esempi SQL - Prof Ing G. La Rosa

85 Esempi SQL - Prof Ing G. La Rosa
Operatore LIKE (2) Esercizio: Visualizzare l’elenco con cognome e filiale dei dipendenti aventi cognome che inizia con ‘Mac’ Esempi SQL - Prof Ing G. La Rosa

86 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Filiale FROM Personale WHERE Cognome LIKE ‘Mac%’; Esempi SQL - Prof Ing G. La Rosa

87 Esempi SQL - Prof Ing G. La Rosa
Operatore IS E’ utilizzato con NULL oppure con NOT NULL per verificare se un certo campo è o no NULL: SELECT Cognome, Nome FROM personale WHERE Prov IS NOT NULL  elenco dei dipendenti nel cui record è indicata la provincia Esempi SQL - Prof Ing G. La Rosa

88 Esempi SQL - Prof Ing G. La Rosa
Subquery Il comando select permette di inserire un altro comando select all’interno della struttura di un comando select creando interrogazioni nidificate  subquery o select interna Esempi SQL - Prof Ing G. La Rosa

89 Esempi SQL - Prof Ing G. La Rosa
Subquery (2) La condizione scritta dopo il where confronta il valore di un attributo con il risultato di un altro comando select Una subquery può restituire Un valore singolo Nessun valore Un insieme di valori Esempi SQL - Prof Ing G. La Rosa

90 Esempi SQL - Prof Ing G. La Rosa
Subquery (3) La clausola select di subquery Può far riferimento a una singola colonna o ad una espressione Non può contenere distintc Non può contenere order by Può avere altre select dentro where e having Esempi SQL - Prof Ing G. La Rosa

91 Esempi SQL - Prof Ing G. La Rosa
Subquery semplici Dapprima viene valutata la query interna il cui risultato viene utilizzato dalla query esterna La query interna deve fornire pertanto fornire un risultato che possa essere valutato in termini booleani dalla where esterna Esempi SQL - Prof Ing G. La Rosa

92 Esempi SQL - Prof Ing G. La Rosa
Subquery semplici (2) Elenco nominativo dei dipendenti con StipBase > della media degli stipendi SELECT Cognome, Nome From personale Where StipBase > (select avg (Stipbase) From personale); Esempi SQL - Prof Ing G. La Rosa

93 Esempi SQL - Prof Ing G. La Rosa
Subquery semplici (3) Esercizio: visualizzare l’elenco con cognome, nome e descrizione della filiale in cui operano dei dipendenti aventi Stipendio pari al max per la funzione impiegato. L’elenco va visualizzato ordinato per cognome e nome. Esempi SQL - Prof Ing G. La Rosa

94 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Nome, Descrizione From personale, dipendenza Where Filiale=CodFil And StipBase = (select max(Stipbase) From personale where Funzione=’impiegato’) Order by Cognome, Nome; Esempi SQL - Prof Ing G. La Rosa

95 Esempi SQL - Prof Ing G. La Rosa
Subquery con any Il predicato any indica che la subquery può restituire 1 Insieme di valori E che la condizione di ricerca è verificata se il confronto è vero per almeno uno dei valori restituiti Esempi SQL - Prof Ing G. La Rosa

96 Esempi SQL - Prof Ing G. La Rosa
Subquery con any (2) La condizione di ricerca è falsa se la subquery restituisce un insieme vuoto oppure se il confronto è falso per ciascuno dei valori restituiti dalla subquery Esempi SQL - Prof Ing G. La Rosa

97 Esempi SQL - Prof Ing G. La Rosa
Subquery con any (3) Esercizio: visualizzare l’elenco con cognome nome e funzione dei dipendenti non impiegati e aventi Stipbase > di uno qualsiasi di quello degli impiegati Esempi SQL - Prof Ing G. La Rosa

98 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Nome,Funzione From personale Where Funzione <> ‘impiegato’ And StipBase > any (select Stipbase where funzione=‘impiegato’); Esempi SQL - Prof Ing G. La Rosa

99 Esempi SQL - Prof Ing G. La Rosa
Subquery con all Il predicato all indica che la subquery può restituire 1 Insieme di valori E che la condizione di ricerca è verificata se il confronto è vero per tutti i valori restituiti Esempi SQL - Prof Ing G. La Rosa

100 Esempi SQL - Prof Ing G. La Rosa
Subquery con all (2) La condizione di ricerca è falsa se il confronto è falso per almeno uno tra i valori restituiti dalla subquery Esempi SQL - Prof Ing G. La Rosa

101 Esempi SQL - Prof Ing G. La Rosa
Subquery con all (3) Esercizio: visualizzare l’elenco con cognome, nome e funzione dei dipendenti non impiegati aventi Stipbase > a quello di tutti gli impiegati Esempi SQL - Prof Ing G. La Rosa

102 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Nome,Funzione From personale Where Funzione <> ‘impiegato’ And StipBase > all (select Stipbase where Funzione=‘impiegato’); Esempi SQL - Prof Ing G. La Rosa

103 Esempi SQL - Prof Ing G. La Rosa
Subquery con IN Il predicato IN serve a controllare se il valore di un attributo è compreso fra quelli restituiti dalla subquery effettuata con la select nidificata E’ possibile utilizzare NOT IN per ottenere la condizione opposta Esempi SQL - Prof Ing G. La Rosa

104 Esempi SQL - Prof Ing G. La Rosa
Subquery con IN (2) Esercizio: visualizzare l’elenco con cognome e nome dei dipendenti che operano nelle filiali con più di 20 dipendenti Esempi SQL - Prof Ing G. La Rosa

105 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Nome From personale Where Filiale IN (select Filiale group by Filiale Having count(*) >20); Esempi SQL - Prof Ing G. La Rosa

106 Equivalenze IN – ANY - ALL
Si osservi che la condizione where attributo IN (select…) Equivale a: where attributo = ANY (select…) Analogamente la condizione where attributo NOT IN (select…) Equivale a: where attributo < > ALL (select…) Esempi SQL - Prof Ing G. La Rosa

107 Esempi SQL - Prof Ing G. La Rosa
Subquery con exists Il predicato exists controlla se vengono restituite righe dall’esecuzione della subquery La condizione è vera se la select nidificata produce una o più righe falsa se restituisce un insieme vuoto Esempi SQL - Prof Ing G. La Rosa

108 Esempi SQL - Prof Ing G. La Rosa
Subquery con exists (2) Nelle subquery con exists le colonne sono irrilevanti pertanto nella subquery si utilizza il carattere * E’ possibile utilizzare la forma negativa NOT EXISTS Esempi SQL - Prof Ing G. La Rosa

109 Esempi SQL - Prof Ing G. La Rosa
Subquery con exists (3) Esercizio: Visualizzare l’ elenco cognome e nome dei dipendenti se esistono dipendenti di livello 8 Esempi SQL - Prof Ing G. La Rosa

110 Esempi SQL - Prof Ing G. La Rosa
Risposta SELECT Cognome, Nome From personale Where exists (select * where livello=8); Esempi SQL - Prof Ing G. La Rosa


Scaricare ppt "Elaborazione dati informatici"

Presentazioni simili


Annunci Google