• Non ci sono risultati.

Significato dell Query (Interrogazioni) Sintassi SQL SQL ’ interrogazione

N/A
N/A
Protected

Academic year: 2021

Condividi "Significato dell Query (Interrogazioni) Sintassi SQL SQL ’ interrogazione"

Copied!
5
0
0

Testo completo

(1)

SQL

Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il Turismo classe L-15

Ultima modifica:

5/4/2012

Query (Interrogazioni)

!  È necessario un modo per interrogare le basi di dati, cioè per estrarre

conoscenza

!  Per reperire le informazioni di interesse da un DB, un utente non può

semplicemente leggere le tabelle:

!  le tabelle possono essere molto grosse

!  può essere necessario utilizzare più tabelle contemporaneamente

!  Si usano le query (interrogazioni)

2

Query

!  Una query permette di specificare

!   cosa cercare all’interno del DB (criteri di selezione)

!   quali informazioni (campi) visualizzare

!  Il risultato consiste in una nuova tabella temporanea con i campi e i record di interesse

3

SQL

!  Originariamente “Structured Query Language”

!  SQL è un linguaggio che consente di formulare interrogazioni (query) (Data Manipulation Language, DML)

!  Anche usato come Data Declaration Language, DDL (per esempio, per dichiarare vincoli di integrità)

!  È il linguaggio utilizzato da tutti i DBMS relazionali commerciali (con qualche differenza da un sistema all’altro)

4

Sintassi

!  Esistono, in generale, più modi per

effettuare un’interrogazione: scelta basata sulla leggibilità (più che sull’efficienza…)

!  Struttura essenziale (introdurremo le variazioni di volta in volta):

select ListaAttributi (target list) from ListaTabelle (clausola “from”) where Condizione (clausola “where”)

5

Significato dell’interrogazione

!  Si considerano la tabella/le tabelle della clausola “from”

!  Si selezionano i record che soddisfano la condizione della clausola “where” (opzionale)

!  Si danno in output i valori degli attributi elencati nella target list (“select”)

6

(2)

Tabella “Impiegato”

7

Schema:

Impiegato(Matricola, Nome, Cognome, Dipart, Ufficio, Stipendio, Città)

Tabella “Impiegato”

Matricola Nome Cognome Dipart Ufficio Stipendio Città

45 Mario Rossi Amministr 10 15 Milano

46 Carlo Bianchi Prod 20 12 Torino

47 Giuseppe Verdi Amministr 20 13 Roma

48 Franco Neri Distrib 16 15 Napoli

49 Carlo Rossi Direzione 14 27 Milano

50 Lorenzo Lanzi Direzione 7 21 Genova

51 Paola Burroni Amministr 75 13 Venezia

52 Marco Franco Prod 20 14 Roma

8

Impiegato

Interrogazione

select * from Impiegato

where Cognome = ‘Rossi’

9 Matricola Nome Cognome Dipart Ufficio Stipendio Città

45 Mario Rossi Amministr 10 15 Milano

49 Carlo Rossi Direzione 14 27 Milano

Interrogazione 1

select * from Impiegato

where Cognome = ‘Rossi’

10 Matricola Nome Cognome Dipart Ufficio Stipendio Città

45 Mario Rossi Amministr 10 15 Milano

49 Carlo Rossi Direzione 14 27 Milano

tutti

Interrogazione 2

select Stipendio from Impiegato

where Cognome = ‘Rossi’

11

Stipendio 15 27

Join

!  Per formulare interrogazioni che coinvolgono più tabelle occorre effettuare un join, cioè

“congiungere” le tabelle

! È un’operazione fondamentale: di norma in un DB le informazioni sono registrate in più tabelle

!  La congiunzione avviene sui valori in comune tra le tabelle

12

(3)

Join in SQL

!  In SQL per effettuare un join è possibile:

1.  elencare le tabelle di interesse nella clausola “from”

2.  definire nella clausola “where” le condizioni necessarie per mettere in relazione fra loro gli attributi di interesse

13

Tabella “Dipartimento”

14 Nome Indirizzo Città

Amministr Via Vai Milano Prod P.le Lavater 3 Torino Distrib Via Segre 9 Roma Direzione Via Vai 2 Milano Ricerca Via Morone 6 Milano Dipartimento(Nome, Indirizzo, Città)

Interrogazione 4

Restituire nome e cognome degli impiegati e le città in cui lavorano

select

Impiegato.Nome,Cognome, Dipartimento.Città from

Impiegato,Dipartimento where

Dipart = Dipartimento.Nome

15

Interrogazione 4

Restituire nome e cognome degli impiegati e delle città in cui lavorano

select

Impiegato.Nome,Cognome, Dipartimento.Città from

Impiegato,Dipartimento where

Dipart = Dipartimento.Nome

16

La notazione “punto”

(Tabella.Attributo) serve per disambiguare

Risultato interrogazione 4

17 Impiegato.Nome Cognome Dipartimento.Città

Mario Rossi Milano

Carlo Bianchi Torino

Giuseppe Verdi Milano

Franco Neri Roma

Carlo Rossi Milano

Lorenzo Lanzi Milano

Paola Burroni Milano

Marco Franco Torino

Interrogazione 4bis

Attenzione!

Se si omette la condizione di join, si ottiene un risultato poco significativo: ogni tupla di una relazione viene messa in corrispondenza con ogni tupla dell’altra relazione

Per es.:

select *

from Impiegato,Dipartimento

Dimenticare la join è un errore grave

18

(4)

Risultato interrogazione 4bis

19

Matricola Impiegato.Nome Cognome Dipart Dipartiment

o.Nome Indirizzo Dipartimento.Città

45 Mario Rossi Amministr Amministr Via Vai 2 Milano

45 Mario Rossi Amministr Prod P.le Lavater 3 Torino

45 Mario Rossi Amministr Distrib Via Segre 9 Roma

45 Mario Rossi Amministr Direzione Via Vai 2 Milano

45 Mario Rossi Amministr Ricerca Via Morone 6 Milano

46 Carlo Bianchi Prod Amministr Via Vai 2 Milano

46 Carlo Bianchi Prod Prod P.le Lavater 3 Torino

46 Carlo Bianchi Prod Distrib Via Segre 9 Roma

46 Carlo Bianchi Prod Direzione Via Vai 2 Milano

46 Carlo Bianchi Prod Ricerca Via Morone 6 Milano

52 Marco Franco Prod Amministr Via Vai 2 Milano

52 Marco Franco Prod Prod P.le Lavater 3 Torino

52 Marco Franco Prod Distrib Via Segre 9 Roma

52 Marco Franco Prod Direzione Via Vai 2 Milano

52 Marco Franco Prod Ricerca Via Morone 6 Milano

Interrogazione 4ter

20

Matricola Impiegato.Nome Cognome Dipart Dipartiment

o.Nome Indirizzo Dipartimento.Città

45 Mario Rossi Amministr Amministr Via Vai 2 Milano

46 Carlo Bianchi Prod Prod P.le Lavater 3 Torino

47 Giuseppe Verdi Amministr Amministr Via Vai 2 Milano

48 Franco Neri Distrib Distrib Via Segre 9 Roma

49 Carlo Rossi Direzione Direzione Via Vai 2 Milano

50 Lorenzo Lanzi Direzione Direzione Via Vai 2 Milano

51 Paola Burroni Amministr Amministr Via Vai 2 Milano

52 Marco Franco Prod Prod P.le Lavater 3 Torino

select *

from Impiegato,Dipartimento where Dipart=Dipartimento.Nome

Sulla clausola “where”

!  Ammette come argomento un’espressione booleana

!  Predicati semplici combinati con not, and, or (not ha la precedenza, consigliato l’uso di parentesi( ))

!  Ciascun predicato usa operatori: =, <>,

<, >, <=, >=

!  Confronto tra valori di attributi, costanti, espressioni

21

Interrogazione 6

select Nome,Cognome from

Impiegato where

Ufficio = 20 and Dipart =‘Amministr’

22

Nome Cognome Giuseppe Verdi

Interrogazioni 7 e 8

select Nome, Cognome from Impiegato where

Dipart=‘Prod’ or Dipart=‘Amministr’

select Nome from Impiegato where

Cognome=‘Rossi’ and (Dipart=‘Prod’ or

Dipart=‘Amministr’)

23 7

8

7

Nome Mario

8 Nome Cognome Mario Rossi Carlo Bianchi Paola Burroni Marco Franco Giuseppe Verdi

Ordinamento

!  Per ordinare le righe del risultato di un’interrogazione, si può usare la clausola order by

!  Es.

select * from Impiegato order by Matricola asc select *

from Impiegato

order by Matricola desc

asc può essere lasciato sottointeso 24 ordine crescente

ordine decrescente

(5)

Ordinamento

!  Si possono combinare più criteri di ordinamento

!  Es.

select * from Impiegato

order by Cognome, Nome

25 a parità di cognome, ordina

per nome (ordine crescente

sottinteso)

Riferimenti

Documenti correlati

Formazione di nuovi tavolati interni eseguiti in cartongesso, con doppia orditura metallica costituita da guide a &#34;U&#34; orizzontali dello spessore di 6/10 mm all'intradosso

Ultima modifica scheda - data: 2021/11/11 Ultima modifica scheda - ora: 10.21 PUBBLICAZIONE SCHEDA. Pubblicazione scheda -

Requisito importante per la realizzazione di un approccio di condivisione dei dati consapevole della privacy è l’implementazione di un hub per la conservazione, elaborazione,

Il consulente Bankasa ti assiste e guida anche dopo il rogito, fornendoti supporto per la voltura delle utenze e le comunicazioni per l’occupazione della casa, che

Ultima modifica scheda - data: 2021/11/11 Ultima modifica scheda - ora: 10.21 PUBBLICAZIONE SCHEDA. Pubblicazione scheda -

Tipo classificazione: Classificazione per genere fotografico Archivi dell'Immagine - Regione Lombardia THESAURUS [1 / 2].

Pomodori pelati, fior di latte, prosciutto crudo di San Daniele, Parmigiano, olio EVO.

La CARTA DEI SERVIZI della Residenza Sanitaria Disabili (R.S.D.) de “La Piccola Casa del Rifugio” è lo strumento attraverso cui l’Ospite, con i suoi famigliari, può conoscere