SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - Funzioni Aggregate e GROUP BY

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - Funzioni Aggregate e GROUP BY"

Transcript

1 SQL SQL come Data Manipulation Language - Funzioni Aggregate e GROUP BY

2 Esempio DB 1 Madre Maternita Figlio Nome Eta Andrea 27 Aldo 25 Maria 55 Anna 50 Filippo 26 Luigi 50 Franco 60 Olga 30 Sergio 85 Luisa 75 Persone Reddito Padre Sergio Luigi Luigi Franco Franco Paternita Luisa Luisa Anna Anna Maria Maria Figlio Franco Olga Filippo Andrea Aldo Maria Luigi Olga Filippo Andrea Aldo 2

3 Esempio DB 2 Nome Cognome Mario Rossi Carlo Bianchi Giuseppe Verdi Franco Neri Carlo Rossi Lorenzo Lanzi Paola Borroni Marco Franco Impiegato Dipartimento Dipart Amministrazione Produzione Amministrazione Distribuzione Direzione Direzione Amministrazione Produzione Nome Amministrazione Produzione Distribuzione Direzione Ricerca Ufficio Stipendio Indirizzo Citta Via Tito Livio Piazza Lavater Via Segre Via Tito Livio Via Morone Milano Torino Roma Milano 3 Milano

4 Necessità di operatori su tuple Nelle interrogazioni viste finora le condizioni di selezione (Clausola Where) venivano valutate su ciascuna tupla indipendentemente da tutte le altre. Questo e lo stesso comportamento dell algebra relazionale. Si puo ad esempio verificare se un impiegato recepisce un certo stipendio. Ma non si puo contare il numero di impiegati di un certo dipartimento, perche occorrerebbe poter manipolare un insieme di tuple. A questo scopo SQL mette a disposizione gli operatori aggregati. 4

5 Esempio di operatore aggregato: count select count(*) AS numeroimpiegati from Impiegato where Dipart = Produzione numeroimpiegati 2 5

6 Valutazione di operatore aggregato (1) Quando si utilizzano operatori aggregati, prima si valuta la query senza operatore. select * from Impiegato where Dipart = Produzione Nome Cognome Dipart Ufficio Stipendio Carlo Bianchi Produzione Marco Franco Produzione

7 Valutazione di operatore aggregato (2) Poi si considerano le tuple come un insieme. select count(*) AS numeroimpiegati from Impiegato where Dipart = Produzione Nome Cognome Dipart Ufficio Stipendio Carlo Bianchi Produzione Marco Franco Produzione

8 COUNT COUNT puo anche riferirsi a singoli attributi (il motivo sara piu chiaro tra poco). select count(*) AS numeroimpiegati from Impiegato numeroimpiegati 8 select count(stipendio) AS numerostipendi from Impiegato numerostipendi 8 8

9 COUNT Si valuta esattamente allo stesso modo. select count(stipendio) AS numerostipendi from Impiegato Stipendio

10 COUNT Se si vogliono considerare solo i valori distinti, si puo utilizzare l opzione distinct. select count(stipendio) AS numerostipendi from Impiegato numerostipendi 8 select count(distinct Stipendio) AS StipDiversi from Impiegato StipDiversi 6 10

11 COUNT Questo equivale alla valutazione della query con l opzione distinct, per poi applicare come al solito l operatore aggregato. select distinct Stipendio from Impiegato Stipendio

12 COUNT e valori nulli Attenzione ai valori nulli quando si specificano gli attributi su cui contare le righe. ImpiegatoConNulli Nome Cognome Dipart Ufficio Stipendio Mario Rossi Amministrazione Carlo Bianchi Produzione Giuseppe Verdi Amministrazione Franco Neri Distribuzione Carlo Rossi Direzione Lorenzo Lanzi Direzione 7 null Paola Borroni Amministrazione 75 null Marco Franco Produzione 20 null 12

13 COUNT e valori nulli select count(*) AS numeroimpiegati from ImpiegatoConNulli numeroimpiegati 8 select count(stipendio) AS numerostipendi from ImpiegatoConNulli numerostipendi 5 13

14 Altri operatori Quanto detto per COUNT vale anche per gli operatori: sum, max, min, avg. Questi operatori escludono opportunamente i valori nulli. L opzione distinct puo ancora essere utilizzata. Altri operatori esistono (varianza, mediano...), ma non sono standard. Controllare il manuale del sistema che si vuole utilizzare. 14

15 Altri operatori select max(stipendio) AS stipendiomax from Impiegato stipendiomax 80 select min(stipendio) AS stipendiomin from Impiegato stipendiomin 36 15

16 Altri operatori select sum(stipendio) AS sommastipendi from Impiegato sommastipendi 405 select avg(stipendio) AS mediastipendi from Impiegato mediastipendi

17 Operatori aggregati e Join Gli operatori aggregati si possono utilizzare anche in concomitanza con i join. select max(stipendio) AS stipendiomassimo from Impiegato, Dipartimento D where Dipart = D.Nome AND Citta = Milano stipendiomassimo 80 17

18 Operatori aggregati e ridenominazione Se non utilizziamo la AS, il risultato non ha nome. select max(stipendio) from Impiegato, Dipartimento D where Dipart = D.Nome AND Citta = Milano 80 18

19 Operatori aggregati e target list ATTENZIONE. Quando si utilizza un operatore aggregato consideriamo insiemi di tuple. La seguente query e scorretta. select Cognome, Nome, min(stipendio) from Impiegato where Dipart = Amministrazione Nome Cognome Dipart Ufficio Stipendio Mario Rossi Amministrazione Giuseppe Verdi Amministrazione Paola Borroni Amministrazione

20 Interrogazioni con raggruppamento Gli operatori aggregati vengono applicati ad un insieme di righe. Gli esempi visti operano su tutte le righe. Spesso esiste l esigenza di applicare operatori aggregati distintamente ad insiemi di tuple. Ad esempio: per ogni dipartimento, trovare la somma degli stipendi. 20

21 Operatori aggregati e raggruppamenti Per ogni dipartimento, la somma degli stipendi Selezioniamo il dipartimento e gli stipendi. Dipart Amministrazione Produzione Amministrazione Distribuzione Direzione Direzione Amministrazione Produzione Stipendio

22 Operatori aggregati e raggruppamenti Per ogni dipartimento, la somma degli stipendi Raggruppiamo per dipartimento. Dipart Amministrazione Amministrazione Amministrazione Produzione Produzione Distribuzione Direzione Direzione Stipendio

23 Operatori aggregati e raggruppamenti Per ogni dipartimento, la somma degli stipendi Calcoliamo la somma. Dipart Amministrazione Produzione Distribuzione Direzione

24 Operatori aggregati e raggruppamenti Per ogni dipartimento, la somma degli stipendi select Dipart, sum(stipendio) AS TotaleStipendi from Impiegato GROUP BY Dipart Dipart Amministrazione Produzione Distribuzione Direzione TotaleStipendi

25 Passo a passo Per ogni dipartimento, la somma degli stipendi select Dipart, Stipendio from Impiegato Dipart Stipendio Amministrazione 45 Produzione 36 Amministrazione 40 Distribuzione 45 Direzione 80 Direzione 73 Amministrazione 40 Produzione 46 25

26 Passo a passo Per ogni dipartimento, la somma degli stipendi select Dipart, Stipendio from Impiegato Dipart Stipendio Group By Dipart Amministrazione Amministrazione Amministrazione Produzione Produzione Distribuzione Direzione Direzione

27 Passo a passo Per ogni dipartimento, la somma degli stipendi select Dipart, sum(stipendio) As TotaleStipendi from Impiegato Group By Dipart Dipart Amministrazione Produzione Distribuzione Direzione TotaleStipendi

28 Operatori aggregati e target list ATTENZIONE: nel momento in cui si utilizzano funzioni aggregate, si stanno considerando insiemi di tuple, non singole tuple. Di conseguenza, non e possibile utilizzare nella target list attributi non utilizzati per il raggruppamento. Infatti, questi attributi possono presentare piu valori per ogni insieme di tuple. Non e quindi possibile ottenere un singolo valore per ogni gruppo di tuple. 28

29 Operatori aggregati e target list Ad esempio, la seguente interrogazione NON HA SENSO: select Cognome, Dipart, sum(stipendio) from Impiegato Group By Dipart Cognome Rossi Verdi Borron Dipart Amministrazione 125 Quale cognome bisogna scegliere? Bianchi Franco Neri Produzione Distribuzione Rossi Lanzi Direzione

30 Operatori aggregati e target list Le interrogazioni che abbiamo visto precedentemente, con funzioni aggregate e senza Group By, possono essere pensate come query in cui il Group By ha prodotto un solo insieme. Continua dunque a valere la regola di non utilizzare attributi nella target list non usati per il raggruppamento. Poiche in assenza del Group By nessun attributo viene utilizzato per il raggruppamento, se si utilizzano funzioni aggregate non si possono specificare altri attributi nella target list. 30

31 Operatori aggregati e target list Query corretta: select min(stipendio), max(stipendio) from Impiegato Query NON corretta: select Cognome, max(stipendio) from Impiegato 31

32 Operatori aggregati e target list Questa limitazione puo talvolta sembrare eccessiva. Ad esempio, la seguente ragionevole query NON e corretta: select Dipart, count(*), Citta from Impiegato I Join Dipartimento D on I.Dipart = D.Nome group by Dipart 32

33 Operatori aggregati e target list Il problema e facilmente risolto raggruppando su tutti gli attributi utilizzati direttamente nella target list. select Dipart, count(*), Citta from Impiegato I Join Dipartimento D on I.Dipart = D.Nome group by Dipart, Citta 33

34 Condizioni sui gruppi Ovviamente, anche utilizzando GROUP BY e possibile filtrare le tuple sulla base di predicati. Ad esempio: select min(stipendio), max(stipendio) from Impiegato where Ufficio = 20 group by Dipart 34

35 Condizioni sui gruppi Se le condizioni sono da calcolare sui raggruppamenti di tuple, si utilizza la clausola HAVING. Cio accade quando le condizioni utilizzano funzioni aggregate. select Dipart, sum(stipendio) from Impiegato group by Dipart HAVING sum(stipendio) > 100 Dipart Amministrazione Direzione

36 Where o Having? Per decidere se specificare le condizioni nella clausola Where o tramite Having la regola semplice: Se bisogna utilizzare una funzione aggregata, significa che la condizione concerne gli insiemi di tuple: Having. In caso contrario: Where. 36

37 Where o Having? I dipartimenti per cui la media degli stipendi degli impiegati che lavorano nell'ufficio 20 è superiore a 25 milioni select Dipart from Impiegato where Ufficio = 20 group by Dipart having avg(stipendio) > 25 37

38 Riassumiamo SelectSQL ::= select ListaAttributiOEspressioni from ListaTabelle [ where CondizioniSemplici ] [ group by ListaAttributiDiRaggruppamento ] [ having CondizioniAggregate ] [ order by ListaAttributiDiOrdinamento ] 38

39 SQL SQL come Data Manipulation Language - Operatori insiemistici

40 Necessita di operatori insiemistici Assumiamo di volere elencare in una tabella i nomi dei padri e delle madri. Non siamo in grado di farlo utilizzando quanto imparato finora. Padre Sergio Luigi Luigi Franco Franco Madre Luisa Luisa Anna Anna Maria Maria 40

41 Necessita di operatori insiemistici Abbiamo bisogno di un operatore di unione, che possa produrre come risultato una tabella in cui sono elencate le righe ottenute da piu Select. Padre Sergio Luigi Luigi Franco Franco Madre Luisa Luisa Anna Anna Maria Maria 41

42 SELECT Padre Unione FROM Paternita UNION SELECT Madre FROM Maternita Padre Sergio Luigi Franco Luisa Anna Maria 42

43 SELECT Padre Unione: considerazioni FROM Paternita UNION SELECT Madre FROM Maternita Padre Sergio Luigi Franco Luisa Anna Maria Gli operatori insiemistici eliminano i duplicati. 43

44 Unione: considerazioni SELECT Padre FROM Paternita UNION ALL SELECT Madre FROM Maternita L opzione ALL li mantiene. Padre Sergio Luigi Luigi Franco Franco Luisa Luisa Anna Anna Maria Maria 44

45 SELECT Padre Unione: considerazioni FROM Paternita UNION SELECT Madre FROM Maternita Padre Sergio Luigi Franco Luisa Anna Maria Il nome utilizzato e tipicamente quello del primo select (si potrebbe decidere di non utilizzare alcun nome) 45

46 Notazione Posizionale select Padre, Figlio from Paternita union select Madre, Figlio from Maternita Padre Sergio Luigi Luigi Franco Franco Madre Luisa Luisa Anna Anna Maria Maria Figlio Franco Olga Filippo Andrea Aldo Figlio Maria Luigi Olga Filippo Andrea Aldo 46

47 Notazione Posizionale select Padre, Figlio from Paternita union select Figlio, Madre from Maternita Padre Sergio Luigi Luigi Franco Franco Figlio Maria Luigi Olga Filippo Andrea Aldo Figlio Franco Olga Filippo Andrea Aldo Madre Luisa Luisa Anna Anna Maria Maria 47

48 Notazione Posizionale Anche con le ridenominazione non cambia nulla: e sempre l ordine a contare. select Padre AS genitore, Figlio from Paternita union select Figlio, Madre AS genitore from Maternita 48

49 Intersezione L intersezione e analoga: select Nome from Impiegato intersect select Cognome from Impiegato Otteniamo: Nome Franco Nome Mario Carlo Giuseppe Franco Carlo Lorenzo Paola Marco Cognome Rossi Bianchi Verdi Neri Rossi Lanzi Borroni Franco 49

50 Intersezione A differenza dell unione, questa query e esprimibile senza utilizzare esplicitamente l operatore insiemistico: select I1.Nome from Impiegato I1, Impiegato I2 where I1.Nome = I2.Cognome 50

51 Differenza Idem per la differenza: select Nome from Impiegato except Nome Mario select Cognome Carlo from Impiegato Giuseppe Otteniamo: Carlo Lorenzo Paola Marco 51

52 Differenza Anche questa query e esprimibile senza utilizzare esplicitamente l operatore insiemistico. Occorre pero utilizzare una struttura piu complessa, composta da due Select annidati. Nella prossima sezione vedremo come scrivere questo tipo di query. 52

53 SQL SQL come Data Manipulation Language - Interrogazioni nidificate

54 Interrogazioni nidificate Abbiamo in precedenza mostrato come la seguente interrogazione sia errata: select Cognome, max(stipendio) from Impiegato L intento e quello di selezionare il cognome dell impiegato/i che guadagna di piu, con il proprio stipendio. Questo e facilmente realizzabile tramite due query. 54

55 Interrogazioni nidificate Prima troviamo lo stipendio massimo: select Cognome from Impiegato where Stipendio = (select max(stipendio) from Impiegato) 80 55

56 Interrogazioni nidificate Poi cerchiamo gli impiegati il cui stipendio e uguale al massimo: select Cognome from Impiegato where Stipendio = (select max(stipendio) from Impiegato) 56

57 Interrogazioni nidificate: un altro esempio Nome e reddito del padre di Mario select Nome, Reddito from Persone where Nome = (select Padre from Paternita where Figlio = 'Mario') Padre di Mario 57

58 Interrogazioni nidificate: un altro esempio Nome e reddito del padre di Mario select Nome, Reddito from Persone where Nome = (select Padre from Paternita where Figlio = 'Mario') 58

59 Interrogazioni nidificate: un altro esempio Una soluzione alternativa, senza nidificazione, e la seguente: select Nome, Reddito from Persone, Paternita where Nome = Padre and Figlio = 'Mario' 59

60 any/all Negli esempi precedenti era chiaro che il risultato del blocco piu interno avrebbe restituito un unica tupla. In generale, non e cosi. Si deve confrontare un attributo con un insieme di tuple. Vengono quindi utilizzati operatori insiemistici esistenziali: any e all. 60

61 any/all Gli impiegati che lavorano in dipartimenti di Roma Cioe : che lavorano in almeno uno dei dipartimenti di Roma. select * from Impiegato where Dipart = any (select Nome from Dipartimento where Citta = 'Roma') 61

62 any/all I dipartimenti in cui non lavorano impiegati di cognome Rossi Cioe : diverso da tutti i dipartimenti in cui lavora un Rossi. select * from Dipartimento where Nome <>all (select Dipart from Impiegato where Cognome = Rossi ) 62

63 any/all In generale, where Attributo θ all (select...) E vero quando Attributo soddisfa la relazione θ (<,<=,>,>=,=,<>) con tutte le tuple resituite da (select...). where Attributo θ any (select...) E vero quando Attributo soddisfa la relazione θ con almeno una delle tuple. 63

64 any/all ESERCIZIO: Esprimere le ultime due interrogazioni senza utilizzare la nidificazione. 64

65 in / not in SQL mette a disposizione anche gli operatori in, e not in, che sono equivalenti a =any e <>all. select * from Impiegato where Dipart in (select Nome from Dipartimento where Citta = 'Roma') select * from Dipartimento where Nome not in (select Dipart from Impiegato where Cognome = Rossi ) 65

66 Interrogazioni nidificate, commenti La prima versione di SQL prevedeva solo la forma nidificata (o strutturata), con una sola relazione in ogni clausola FROM. Il che è insoddisfacente: La dichiaratività è limitata. Non si possono includere nella target list attributi di relazioni nei blocchi interni. La forma nidificata è meno dichiarativa, ma talvolta più leggibile (richiede meno variabili). La forma piana e quella nidificata possono essere combinate. Le sottointerrogazioni non possono contenere operatori insiemistici ( l unione si fa solo al livello esterno ). La limitazione non è significativa. 66

67 Interrogazioni piatte o nidificate? Spesso ad una query nidificata ne corrisponde una piatta. La scelta deve essere guidata in primis dalla leggibilita, in quanto sara poi il sistema a scegliere un piano di esecuzione efficiente. 67

68 Interrogazioni piatte o nidificate? Nome e reddito dei padri di persone che guadagnano più di 20 milioni" select Nome, Reddito from Persone where Nome in (select Padre from Paternita where Figlio =any (select Nome from Persone where Reddito > 20)) select distinct P.Nome, P.Reddito from Persone P, Paternita, Persone F where P.Nome = Padre and Figlio = F.Nome and F.Reddito > 20 68

69 Interrogazioni piatte o nidificate? Nome degli impiegati che si chiamano come un impiegato di Produzione" select I1.Nome from Impiegato I1, Impiegato I2 where I1.Nome = I2.Nome and I2.Dipart = 'Produzione' select Nome from Impiegato where Nome = any (select Nome from Impiegato where Dipart = 'Produzione') 69

70 Operatore exists Un ulteriore operatore insiemistico e exists. Si puo utilizzare per verificare se il risultato di una query interna e vuoto. 70

71 Operatore exists Le persone che hanno almeno un figlio select * from Persone where exists (select * from Paternita where Padre = Nome) or exists (select * from Maternita where Madre = Nome) 71

72 Operatore exists Nome Andrea Aldo Maria Anna Filippo Luigi Franco Olga Sergio Luisa Le persone che hanno almeno un figlio select * from Persone where exists (select * from Paternita where Padre = Nome) or exists (select * from Maternita where Madre = Nome) Padre Sergio Luigi Luigi Franco Franco Madre Luisa Luisa Anna Anna Maria 72 Maria

73 Operatore exists Nome Andrea Aldo Maria Anna Filippo Luigi Franco Olga Sergio Luisa Le persone che hanno almeno un figlio select * from Persone where exists (select * from Paternita where Padre = Nome) or exists (select * from Maternita where Madre = Nome) Padre Sergio Luigi Luigi Franco Franco Madre Luisa Luisa Anna Anna Maria 73 Maria

74 Operatore exists Nome Andrea Aldo Maria Anna Filippo Luigi Franco Olga Sergio Luisa Le persone che hanno almeno un figlio select * from Persone where exists (select * from Paternita where Padre = Nome) or exists (select * from Maternita where Madre = Nome) Padre Sergio Luigi Luigi Franco Franco Madre Luisa Luisa Anna Anna Maria 74 Maria

75 Operatore exists Nome Andrea Aldo Maria Anna Filippo Luigi Franco Olga Sergio Luisa Le persone che hanno almeno un figlio select * from Persone where exists (select * from Paternita where Padre = Nome) or exists (select * from Maternita where Madre = Nome) Padre Sergio Luigi Luigi Franco Franco Madre Luisa Luisa Anna Anna Maria 75 Maria

76 Semantica delle espressioni correlate L interrogazione interna viene eseguita una volta per ciascuna ennupla dell interrogazione esterna. select Attributo from Tabella where exists (select Select * from From Paternita... where Padre = Nome) Where Attributo... 76

77 Esempio di utilizzo di exists Trovare i padri i cui figli guadagnano tutti più di venti milioni" select distinct Padre from Paternita Z where not exists (select * from Paternita W, Persone where W.Padre = Z.Padre and W.Figlio = Nome and Reddito <= 20) 77

78 exists per specificare una differenza select Nome from Impiegato except select Cognome as Nome from Impiegato select Nome from Impiegato I where not exists (select * from Impiegato where Cognome = I.Nome) 78

79 exists per specificare un unione select * from Persone where Reddito > 30 union select F.* from Persone F, Paternita, Persone P where F.Nome = Figlio and Padre = P.Nome and P.Reddito > 30 select * from Persone F where Reddito > 30 or exists (select * from Paternita, Persone P where F.Nome = Figlio and Padre = P.Nome and P.Reddito > 30) 79

80 Regole di visibilità: Visibilità Non è possibile fare riferimenti a variabili definite in blocchi più interni Se un nome di variabile è omesso, si assume riferimento alla variabile più vicina Nota: in un blocco si può fare riferimento a variabili definite in blocchi più esterni. L interrogazione interna va ripetuta una volta per ciascun valore della variabile. 80

81 Visibilità La seguente query e scorretta, in quanto D1 e visibile solo nel blocco in cui e dichiarata: select * from Impiegato Visibilita di D1 where Dipart in (select Nome from Dipartimento D1 where Nome = 'Produzione') or Dipart in (select Nome from Dipartimento D2 where D2.Citta = D1.Citta) 81

Il linguaggio SQL - Interrogazioni -

Il linguaggio SQL - Interrogazioni - Il linguaggio SQL - Interrogazioni - Dott. Nicola Dragoni nicola.dragoni@gmail.com (Il contenuto di queste slide è stato originariamente creato dal Dott. Matteo Magnani) 1 Il linguaggio SQL Il linguaggio

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operatori aggregati Nelle espressioni della target list possiamo avere anche espressioni che calcolano valori a partire da insiemi

Dettagli

Operatori aggregati: COUNT

Operatori aggregati: COUNT Operatori aggregati: COUNT Il numero di figli di select count(*) as NumFigliDi where Padre = '' Paternità Padre Sergio Figlio Olga Filippo Andrea Aldo l operatore aggregato (count) viene applicato al risultato

Dettagli

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

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

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

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna 1985 13 laura sicuro rimini 1984 esami codice Linguaggio SQL Il linguaggio SQL (Structured Query Language) è il linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali sostenuti codice matricola anno voto

Dettagli

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento Operatori aggregati In algebra relazionale le espressioni vengono valutate sulle singole tuple in successione. Talvolta però possono essere necessarie informazioni derivabili dall esame di tutte le tuple

Dettagli

Idoneita Informatica. Sistemi per la gestione di basi di Dati

Idoneita Informatica. Sistemi per la gestione di basi di Dati Idoneita Informatica Sistemi per la gestione di basi di Dati Prof. Mauro Gaspari mauro.gaspari@unibo.it Rielaborazione delle slide del Dott. Matteo Magnani e del Dott. Nicola Dragoni 1 Sistema Informativo

Dettagli

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY)

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY) SQL SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY) Esempio 1 Madre Maternita Figlio Nome Eta Andrea 27 Aldo 25 Maria 55 Anna 50 Filippo 26 50 60 Olga 30 Sergio 85 Luisa 75 Persone Reddito

Dettagli

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

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Argomenti della lezione SQL Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Maternità Paternità Madre Figlio Olga Filippo Sergio Olga Filippo Persone

Dettagli

Interrogazioni su più tabelle. Interrogazioni su più tabelle. Clausola where. Interrogazioni su più tabelle

Interrogazioni su più tabelle. Interrogazioni su più tabelle. Clausola where. Interrogazioni su più tabelle Interrogazioni su più tabelle Se si vogliono estrarre informazioni da più tabelle, queste devono apparire come argomento della clausola from. Se si deve formulare un join, è possibile farlo in modo esplicito

Dettagli

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a. 2013-2014 Docente: Gigliola Vaglini Docente laboratorio: Francesco Pistolesi Lezione 4 Interrogazioni annidate

Dettagli

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione.

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione. Ordinamento E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione. order by AttrdiOrdinamento [asc desc] {, AttrdiOrdinamento

Dettagli

Informatica CL Fisioterapisti. Informatica Medica Sistemi per la gestione di basi di Dati

Informatica CL Fisioterapisti. Informatica Medica Sistemi per la gestione di basi di Dati Informatica CL Fisioterapisti Informatica Medica Sistemi per la gestione di basi di Dati Prof. Mauro Gaspari mauro.gaspari@unibo.it 1 Informatica Medica La scienza che si occupa della gestione dell informazione

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Luca Martini Università di Pisa 16 aprile 2010 Riepilogo sugli operatori aggregati Sintassi SELECT A t t r i b u t o 1, MAX( A t t r i b u t o 2 ),... FROM Tabella1, Tabella2,...

Dettagli

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

SQL. SQL: una visione panoramica. SQL: storia Definizione dei dati SQL SQL: una visione panoramica I lucidi presentati sono liberamente ispirati al contenuto del Capitolo 4 del libro Atzeni, Ceri, Paraboschi, Torlone Basi di dati - McGraw-Hill, 1999 Structured Query Language

Dettagli

Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte.

Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte. Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte 11/03/2005 Maternità Legami logici Paternità Madre Luisa Luisa Anna Anna Padre

Dettagli

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1 SQL Esempi 24/10-7/11/2016 Basi di dati - SQL 1 Esercitazioni pratiche Per SQL è possibile (e fondamentale) svolgere esercitazioni pratiche Verranno anche richieste copme condizione per svolgere le prove

Dettagli

SQL Esempi /10/2017 Basi di dati - SQL 1

SQL Esempi /10/2017 Basi di dati - SQL 1 SQL Esempi 23-26/10/2017 Basi di dati - SQL 1 Esercitazioni pratiche Per SQL è possibile (e fondamentale) svolgere esercitazioni pratiche Verranno anche richieste copme condizione per svolgere le prove

Dettagli

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Select La forma di select cui siamo arrivati

Dettagli

SQL /10/2016 Basi di dati - SQL 1

SQL /10/2016 Basi di dati - SQL 1 SQL 24-27/10/2016 Basi di dati - SQL 1 Esercitazioni pratiche Per SQL è possibile (e fondamentale) svolgere esercitazioni pratiche Verranno anche richieste copme condizione per svolgere le prove parziali

Dettagli

Interrogazioni in SQL SQL. Interrogazioni in SQL. Sintassi. Significato dell interrogazione. Notazione

Interrogazioni in SQL SQL. Interrogazioni in SQL. Sintassi. Significato dell interrogazione. Notazione SQL Anno accademico 2008/2009 Interrogazioni in SQL Originariamente Structured Query Language Non esiste un unico standard SQL standard Formulazione di interrogazioni (query) è parte del Data Manipulation

Dettagli

SQL. Domini. Domini elementari (predefiniti) Domini definiti dall utente (semplici, ma riutilizzabili)

SQL. Domini. Domini elementari (predefiniti) Domini definiti dall utente (semplici, ma riutilizzabili) Structured Query Language è un linguaggio con varie funzionalità: contiene sia il DDL sia il DML; esistono varie versioni dell ; vediamo gli aspetti essenziali non i dettagli storia : prima proposta SEQUEL

Dettagli

Tabelle esempio: Impiegato/Dipartimento

Tabelle esempio: Impiegato/Dipartimento Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (3) Insiemistiche e Nidificate Prof. Alberto Postiglione

Dettagli

Queries su più tabelle

Queries su più tabelle Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

Figlio Maria. Luigi. Olga Filippo Andrea Aldo Figlio Franco Olga Filippo Andrea Aldo

Figlio Maria. Luigi. Olga Filippo Andrea Aldo Figlio Franco Olga Filippo Andrea Aldo Maternità Paternità Madre Luisa Luisa Anna Anna Maria Maria Padre Sergio Luigi Luigi Franco Franco Figlio Maria Luigi Olga Filippo Andrea Aldo Figlio Franco Olga Filippo Andrea Aldo Persone Nome Età Andrea

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Raggruppamento. Raggruppamento

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Raggruppamento. Raggruppamento INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : SQL (4) GROUPING Atzeni, cap. 4.3.4 DBMS: SQL (4) GROUPING 26 nov 2010 Dia 2 Gli operatori

Dettagli

Interrogazioni in SQL SQL. Interrogazioni in SQL. Cenni sull implementazione

Interrogazioni in SQL SQL. Interrogazioni in SQL. Cenni sull implementazione Interrogazioni in SQL SQL Interrogazioni Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation Language, DML Anche usato come Data Declaration

Dettagli

IL LINGUAGGIO SQL LE BASI

IL LINGUAGGIO SQL LE BASI IL LINGUAGGIO SQL LE BASI DB DI RIFERIMENTO PER GLI ESEMPI 2 ESPRESSIONI NELLA CLAUSOLA SELECT La SELECT list può contenere non solo attributi, ma anche espressioni: Le espressioni possono comprendere

Dettagli

Corso di. Basi di Dati I. 8. Esercitazioni in SQL: Interrogazioni nidificate

Corso di. Basi di Dati I. 8. Esercitazioni in SQL: Interrogazioni nidificate Corso di Basi di Dati 8. Esercitazioni in SQL: Interrogazioni nidificate A.A. 2016 2017 Interrogazioni nidificate Come abbiamo visto, in una query SQL il comando where è seguito da un argomento che può

Dettagli

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

Corso di Basi di Dati A.A. 2015/2016 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 22/02/2016 Interrogazioni nidificate In

Dettagli

Structured Query Language

Structured Query Language IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un

Dettagli

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

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf Il linguaggio SQL: raggruppamenti Versione elettronica: SQLb-gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a singole tuple (eventualmente

Dettagli

Il linguaggio SQL: raggruppamenti

Il linguaggio SQL: raggruppamenti Il linguaggio SQL: raggruppamenti Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLb-gruppi.pdf Sistemi Informativi L-A Informazioni di sintesi

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo LB (SQL) 5 - Aggregazione e raggruppamento Prerequisiti Conteggio e somma degli elementi di un insieme numerico Massimo, minimo e media di un insieme numerico Ordinamento

Dettagli

Il linguaggio SQL: raggruppamenti

Il linguaggio SQL: raggruppamenti Il linguaggio SQL: raggruppamenti Sistemi Informativi T Versione elettronica: 04.3.SQL.gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono

Dettagli

Informatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB

Informatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB Informatica II Basi di Dati (07/08) Parte 2 Gianluca Torta Dipartimento di Informatica dell Università di Torino torta@di.unito.it, 0116706782 4 Accesso ai dati di un DB SQL Accesso ai dati di un DB Aggiornamento

Dettagli

Interrogazioni complesse. SQL avanzato 1

Interrogazioni complesse. SQL avanzato 1 Interrogazioni complesse SQL avanzato Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazione Query con raggruppamento Query binarie Query annidate SQL avanzato 2 Esempio

Dettagli

SQL - Sottointerrogazioni correlate

SQL - Sottointerrogazioni correlate SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ Il Linguaggio SQL SQL (Structured Query Language) è il linguaggio di riferimento per le basi di dati

Dettagli

SQL e algebra relazionale

SQL e algebra relazionale SQL e algebra relazionale Il linguaggio SQL consente una maggiore espressività dell algebra relazionale grazie a costrutti che permettono: di definire join più sofisticati di ordinare le righe dei risultati

Dettagli

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

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

SQL: "storia" 31/05/2006 2

SQL: storia 31/05/2006 2 SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali, non i dettagli

Dettagli

Linguaggio SQL seconda parte

Linguaggio SQL seconda parte Linguaggio SQL seconda parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle

Dettagli

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

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Query (Interrogazioni) SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il

Dettagli

BASE DI DATI. Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste. Informatica Umanistica Università di Pisa

BASE DI DATI. Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste. Informatica Umanistica Università di Pisa BASE DI DATI Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste Informatica Umanistica Università di Pisa Corsi T Esami T codice CHAR(3) titolo VARCHAR(20) PK Numeri T corso CHAR(3)

Dettagli

Progettazione di Sistemi Informatici

Progettazione di Sistemi Informatici Progettazione di Sistemi Informatici Raggruppamenti Domenico Diacono Corso ADM Gennaio 2008 A che punto siamo Finora abbiamo estratto dal DB informazioni relative a singole ennuple, eventualmente ottenute

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2016/2017 4 SQL : Structured Query Language Tiziana Catarci Ultimo aggiornamento : 22/02/2016 SQL : Structured

Dettagli

Basi di dati. SQL: concetti base

Basi di dati. SQL: concetti base Basi di dati SQL: concetti base SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : SQL (3) Tabelle multiple, variabili, operatori di aggregazione QUERIES SU PIU TABELLE Queries su più tabelle 17 mar 010 Dia 3 17 mar 010 Dia 4 Per formulare un interrogazione su più tabelle, la clausola

Dettagli

Operatori aggregati. Gli operatori di aggregazione NON sono rappresentabili in Algebra Relazionale. conteggio, minimo, massimo, media, somma

Operatori aggregati. Gli operatori di aggregazione NON sono rappresentabili in Algebra Relazionale. conteggio, minimo, massimo, media, somma Aggregazione dati Operatori aggregati Nelle espressioni della target list possiamo avere anche espressioni che calcolano valori a partire da insiemi di ennuple SQL-2 prevede 5 possibili operatori di aggregamento:

Dettagli

4.SQL QUERY. Fare una query significa fare delle ricerche sul nostro database.

4.SQL QUERY. Fare una query significa fare delle ricerche sul nostro database. 4.SQL QUERY >definizione A cura di: Celora Luca Fare una query significa fare delle ricerche sul nostro database. >strumenti da usare SELECT //sceglie le colonne da visualizzare FROM //indica da quali

Dettagli

SQL. Domini. Domini elementari (predefiniti) Domini definiti dall utente (semplici, ma riutilizzabili)

SQL. Domini. Domini elementari (predefiniti) Domini definiti dall utente (semplici, ma riutilizzabili) SQL SQL Structured Query Language è un linguaggio con varie funzionalità: contiene sia il DDL sia il DML; esistono varie versioni dell SQL; vediamo gli aspetti essenziali non i dettagli storia : prima

Dettagli

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

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni SQL [2] Concetti avanzati di SQL 2 Esempi di interrogazioni 3 Esempi di interrogazioni 4 Esempi di interrogazioni 5 Confronti che coinvolgono NULL NULL può voler dire: valore sconosciuto (esiste ma non

Dettagli

Interrogazioni semplici

Interrogazioni semplici Interrogazioni semplici Lorenzo Sarti 2009 Basi di Dati 1 select Campi considerati Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198330 Neri

Dettagli

Linguaggi per basi di dati e SQL

Linguaggi per basi di dati e SQL Linguaggi per basi di dati e SQL Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento

Dettagli

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione Linguaggi per basi di dati e SQL Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento

Dettagli

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a. 2012-2013 2013 Docente: Gigliola Vaglini Docenti laboratorio: Francesco Pistolesi, Antonio Virdis Lezione

Dettagli

Aggiornamenti e Interrogazioni

Aggiornamenti e Interrogazioni Aggiornamenti e Interrogazioni Aggiornamento: inserimento o modifica di dati (una funzione che, data un istanza di basi di dati ne produce un altra) Interrogazione: estrazione di informazioni (una funzione

Dettagli

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL Principi di Progettazione del Software a.a. 2017-2018 Ing. Università del Salento Il Linguaggio SQL Due componenti principali: Ø DDL (Data Definition Language) Contiene i costrutti necessari per la creazione/modifica

Dettagli

<Nome Tabella>.<attributo>

<Nome Tabella>.<attributo> Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 4) SQL SQL. Definizione dei dati in SQL

E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 4) SQL SQL. Definizione dei dati in SQL SQL E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 4) SQL 05/10/2004 originariamente "Structured Query Language", ora "nome proprio" linguaggio

Dettagli

Operatori aggregati. Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella

Operatori aggregati. Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella Operatori aggregati Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella e ha come risultato un valore atomico. Count Questo operatore serve per contare le tuple di

Dettagli

BASE DI DATI. Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste. Informatica Umanistica Università di Pisa

BASE DI DATI. Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste. Informatica Umanistica Università di Pisa BASE DI DATI Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste Informatica Umanistica Università di Pisa Corsi T Esami T codice CHAR(3) titolo VARCHAR(20) PK Numeri T corso CHAR(3)

Dettagli

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

Basi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL Basi di Dati Esercitazione 1: Interrogazioni in SQL DB di riferimento per esempi Consideriamo i seguenti schemi di una base di dati relazionale: PremioProduzione, DataAssunzione) Viene data la seguente

Dettagli

SQL. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL. Definizione dei dati in SQL. SQL: "storia" Domini

SQL. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL. Definizione dei dati in SQL. SQL: storia Domini SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 Capitolo 4: SQL 24/09/2002 originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene

Dettagli

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

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL. Definizione dei dati in SQL. SQL: "storia" Domini. CREATE TABLE, esempio

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL. Definizione dei dati in SQL. SQL: storia Domini. CREATE TABLE, esempio SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 Capitolo 4: SQL 24/09/2002 originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene

Dettagli

SQL. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL. Definizione dei dati in SQL. SQL: "storia" Domini

SQL. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL. Definizione dei dati in SQL. SQL: storia Domini SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 Capitolo 4: SQL 24/09/2002 originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene

Dettagli

SQl come DML. Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone

SQl come DML. Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone SQl come DML Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 5 Appunti dalle lezioni SQL come DDL Sistemi

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno 2.3b: SQL (2) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 46 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 3 Funzioni d aggregazione La Clausola GROUP BY La Clausola HAVING

Dettagli

SQL - Sottointerrogazioni

SQL - Sottointerrogazioni una delle ragioni che rendono SQL un linguaggio potente è la possibilità di esprimere interrogazioni più complesse in termini di interrogazioni più semplici, tramite il meccanismo delle subqueries (sottointerrogazioni)

Dettagli

Basi di dati - Laboratorio

Basi di dati - Laboratorio Basi di dati - Laboratorio Corso di Laurea in Bioinformatica Docente: Barbara Oliboni Lezione 4 Contenuto della lezione Interrogazioni SQL Join interni ed esterni Uso di variabili tupla o ALIAS Interrogazioni

Dettagli

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini Elementi di Informatica LB Basi di Dati Anno accademico 2007/2008 Prof. Stefano Contadini Elementi di Informatica LB titolo: 1. Definizione dei dati 1 SQL originariamente "Structured Query Language", ora

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi T Versione elettronica: 04.4.SQL.subquery.pdf DB di riferimento per gli esempi Imp Sedi CodImp E001 E002 E003 Nome Rossi Verdi Bianchi Sede S02 Ruolo

Dettagli

Laboratorio di. Docenti: Alberto Belussi e Carlo Combi

Laboratorio di. Docenti: Alberto Belussi e Carlo Combi Laboratorio di Basi di dati/basi i di dati per Bioinformatica Docenti: Alberto Belussi e Carlo Combi Lezione 3 Interrogazioni i SQL Le interrogazioni i i SQL hanno la seguente struttura: SELECT

Dettagli

Esercizi di Informatica Documentale

Esercizi di Informatica Documentale Esercizi di Informatica Documentale A.A. 2015/2016 Parte Prima Nota: Laddove si richiede una risposta aperta, rispondere al massimo in tre righe. 1. Che cos è una Base di Dati? 2. Dare la definizione di

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezioni 6 7 Raffaella Gentilini 1 / 46 Sommario 1 Subquery (o Interrogazioni Nidificate) Interrogazioni Annidate con Predicati di Confronto Interrogazioni Annidate con

Dettagli

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 4.2 e proiezione 1 Prerequisiti Creazione e gestione tabelle Uso ambiente SQL Concetto di schema Operazioni di algebra relazionale 2 1 Introduzione In questa Unità

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi T Versione elettronica: 04.4.SQL.subquery.pdf DB di riferimento per gli esempi Imp CodImp Nome Sede Ruolo Stipendio E001 Rossi S01 Analista 2000 E002

Dettagli

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

Data Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003 DB2 Data Management Software Il linguaggio SQL Query Innestate Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

Corso di Basi di Dati A.A. 2013/2014

Corso di Basi di Dati A.A. 2013/2014 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2013/2014 4 SQL : Structured Query Language Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 27/03/2014

Dettagli

Monday, January 24, 2011 SQL

Monday, January 24, 2011 SQL SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono

Dettagli

QL (Query Language) Alice Pavarani

QL (Query Language) Alice Pavarani QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione

Dettagli

Parte III. L algebra relazionale

Parte III. L algebra relazionale Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2014-2015 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

Dettagli

Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno

Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (1) Interrogazioni semplici Prof. Alberto Postiglione

Dettagli

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

SQL terza parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2010/11 SQL terza parte D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2010/11 Operatori aggregati Costituiscono una estensione delle normali interrogazioni SQL (non hanno corrispondenza in

Dettagli

3 SQL : Interrogazioni

3 SQL : Interrogazioni Corso di Laurea in Ingegneria Gestionale SAPIENZA Università di Roma Esercitazioni del corso di Basi di Dati Prof.ssa Catarci e Prof.ssa Scannapieco Anno Accademico 2010/2011 Andrea Marrella Ultimo aggiornamento

Dettagli

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

Corso di Basi di Dati A.A. 2015/2016 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 Language Soluzione Esercizi Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 19/03/2016

Dettagli

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

SQL. SQL: storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. standard di fatto SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS

Dettagli

Parte III L algebra relazionale

Parte III L algebra relazionale Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2017-2018 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

Dettagli

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe SQL SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe Operazioni di aggiornamento Abbiamo visto come creare tabelle e come interrogarle. Vedremo ora come popolarle

Dettagli