Interrogazione di una base di dati relazionale Algebra relazionale.
Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52....
Transcript of Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52....
![Page 1: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/1.jpg)
Il DML di SQL: Interrogazione di una BD
Basi di Dati:Corso di laboratorio
Lezione 3
Raffaella Gentilini
1 / 52
![Page 2: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/2.jpg)
Il DML di SQL: Interrogazione di una BD
Sommario
1 Il DML di SQL: Interrogazione di una BDLa Clausola SELECT
La Clausola FROM
La Clausola ORDER BY
La Clausola WHERE
Funzioni e Operatori
2 / 52
![Page 3: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/3.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Data Manipulation Language (DML)
Istruzioni del DML
Le istruzioni del DML di SQL sono:
Modifica
INSERT: Inserisce nuove tuple nel DBUPDATE : Cancella tuple dal DBDELETE : Modifica tuple nel DB
Interrogazione
SELECT: Esegue interrogazioni (query) sul DB
3 / 52
![Page 4: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/4.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Data Manipulation Language (DML)
Istruzioni del DML
Le istruzioni del DML di SQL sono:
Modifica
INSERT: Inserisce nuove tuple nel DBUPDATE : Cancella tuple dal DBDELETE : Modifica tuple nel DB
Interrogazione
SELECT: Esegue interrogazioni (query) sul DB
4 / 52
![Page 5: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/5.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
L’Istruzione SELECT
Sintassi generale del comando SELECT
SELECT [ALL |DISTINCT ] { ∗ | <espressione> [AS<nome> ] } [, . . . ]FROM<nome tab> [ [ AS ]<alias> ][ WHERE<predicato> ][ GROUP BY<espressione> [, . . . ] ][ HAVING<predicato> ][ { UNION | INTERSECT | EXCEPT [ ALL ]}<richiesta> ][ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
L’istruzione SELECT e’ composta da 7 clausole, di cui 5 opzionali.
5 / 52
![Page 6: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/6.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
L’Istruzione SELECT
Sintassi generale del comando SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]FROM<nome tab> [ [ AS ]<alias> ][ WHERE<predicato> ][ GROUP BY<espressione> [, . . . ] ][ HAVING<predicato> ][ { UNION | INTERSECT | EXCEPT [ ALL ]}<richiesta> ][ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Clausola SELECT
Permette di specificare gli attributi che devono apparire nelrisultato della query.
6 / 52
![Page 7: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/7.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
L’Istruzione SELECT
Sintassi generale del comando SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]FROM<nome tab> [ [ AS ]<alias> ][ WHERE<predicato> ][ GROUP BY<espressione> [, . . . ] ][ HAVING<predicato> ][ { UNION | INTERSECT | EXCEPT [ ALL ]}<richiesta> ][ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Clausola FROM
Specifica tabelle (/e) su cui viene posta la query .
7 / 52
![Page 8: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/8.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
L’Istruzione SELECT
Sintassi generale del comando SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]FROM<nome tab> [ [ AS ]<alias> ][ WHERE<predicato> ][ GROUP BY<espressione> [, . . . ] ][ HAVING<predicato> ][ { UNION | INTERSECT | EXCEPT [ ALL ]}<richiesta> ][ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Clausola WHERE
Permette di filtrare le tuple in base alla specifica di condizioni dasoddisfare.
8 / 52
![Page 9: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/9.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
L’Istruzione SELECT
Sintassi generale del comando SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]FROM<nome tab> [ [ AS ]<alias> ][ WHERE<predicato> ][ GROUP BY<espressione> [, . . . ] ][ HAVING<predicato> ][ { UNION | INTERSECT | EXCEPT [ ALL ]}<richiesta> ][ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Clausola GROUP BY
Permette di definire dei gruppi.
9 / 52
![Page 10: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/10.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
L’Istruzione SELECT
Sintassi generale del comando SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]FROM<nome tab> [ [ AS ]<alias> ][ WHERE<predicato> ][ GROUP BY<espressione> [, . . . ] ][ HAVING<predicato> ][ { UNION | INTERSECT | EXCEPT [ ALL ]}<richiesta> ][ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Clausola UNION, INTERSECT, EXCEPT
Permette di effettuare operazioni insiemistiche sui risultati dellaquery.
10 / 52
![Page 11: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/11.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
L’Istruzione SELECT
Sintassi generale del comando SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]FROM<nome tab> [ [ AS ]<alias> ][ WHERE<predicato> ][ GROUP BY<espressione> [, . . . ] ][ HAVING<predicato> ][ { UNION | INTERSECT | EXCEPT [ ALL ]}<richiesta> ][ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Clausola ORDER BY
Permette di ordinare le tuple del risultato della query.
11 / 52
![Page 12: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/12.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
La Clausola SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]
definisce le colonne nel risultato della query;
permette di operare un’operazione di proiezione sulla tabellaintermedia generata dal resto della query;
la specifica esplicita degli attributi avviene elencando isuddetti in una lista, separati da virgola;
permette anche di rinominare colonne e di generarne di nuove.
12 / 52
![Page 13: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/13.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
La Clausola SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]
definisce le colonne nel risultato della query;
permette di operare un’operazione di proiezione sulla tabellaintermedia generata dal resto della query;
la specifica esplicita degli attributi avviene elencando isuddetti in una lista, separati da virgola;
permette anche di rinominare colonne e di generarne di nuove.
13 / 52
![Page 14: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/14.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
La Clausola SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]
definisce le colonne nel risultato della query;
permette di operare un’operazione di proiezione sulla tabellaintermedia generata dal resto della query;
la specifica esplicita degli attributi avviene elencando isuddetti in una lista, separati da virgola;
permette anche di rinominare colonne e di generarne di nuove.
14 / 52
![Page 15: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/15.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
La Clausola SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]
definisce le colonne nel risultato della query;
permette di operare un’operazione di proiezione sulla tabellaintermedia generata dal resto della query;
la specifica esplicita degli attributi avviene elencando isuddetti in una lista, separati da virgola;
permette anche di rinominare colonne e di generarne di nuove.
15 / 52
![Page 16: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/16.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
SELECT senza proiezione
L’operatore *
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]
L’operatore * permette di recuperare tutti gli attributi dellatabella specificata nella clausola FROM
16 / 52
![Page 17: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/17.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
L’operatore *: Esempio
Si consideri lo schema relazionale visto nelle lezioni precedente:
persona(id persona, codice fiscale, nome, cognome, data nascita)
corso(id corso, id insegnante, sigla, crediti , descrizione)
frequenza(id studente,id corso,voto): dove id studente ed id corsosono chiavi esterne su persona e corso
Example
SELECT * FROM persona;
permette recupero dell’intero contenuto di persona; equivale a:
SELECT id persona, codice fiscale, nome, cognome, data nascitaFROM persona;
17 / 52
![Page 18: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/18.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Tabelle vs Relazioni
Gli operatori DISTINCT e ALL
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [AS<nome> ] } [, . . . ]
Il risultato di una query SQL puo’ contenere righe duplicate
SELECT nomeFROM personaWHERE cognome = ’Rossi ’
nome
FrancescaPaolo
Francesca
18 / 52
![Page 19: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/19.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Tabelle vs Relazioni
Gli operatori DISTINCT e ALL
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [AS<nome> ] } [, . . . ]
Per eliminare le duplicazioni si usa l’opzione DISTINCT nellaclausola SELECT
SELECT DISTINCT nomeFROM personaWHERE cognome = ’Rossi ’
nome
FrancescaPaolo
ALL e’ opzione di default nella clausola SELECT
19 / 52
![Page 20: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/20.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Espressioni nella clausola SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]
La SELECT list puo’ contenere non solo attributi, ma ancheespressioni:
SELECT id studente, voto + 2FROM frequenzaWHERE id corso = 5
id studente
1 302 183 19. . . . . .
Si noti che in questo caso la seconda colonna e’ priva di nome.
20 / 52
![Page 21: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/21.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Espressioni nella clausola SELECT
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]
L’utilizzo dell’operatore || all’interno di un’espressione nellaclausola SELECT permette di concatenare campi di tipocarattere
Example
SELECT cognome || ’ ’ || nome ’ ’ || ’e\’nato il:’ || data nascitaFROM persona
21 / 52
![Page 22: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/22.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Ridenominazione delle Colonne
SELECT [ ALL | DISTINCT ] { ∗ |<espressione> [ AS<nome> ] } [, . . . ]
L’operatore AS
Ad ogni elemento della SELECT list e’ possibile associare unnome a piacere.SELECT id studente, voto+2 AS voto calmierato
FROM frequenza;
La parola chiave AS puo’ anche essere omessa.SELECT id studente, voto+2 voto calmierato
FROM frequenza;
22 / 52
![Page 23: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/23.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
La Clausola FROM
FROM<nome tab> [ [ AS ]<alias> ]
Specifica le tabelle su cui si pone la query;
Costruisce la tabella intermedia a partire da una o piu’ tabelle,su cui operano le altre clausole (SELECT, WHERE . . . )
La tabella intermedia e’ il risultato del prodotto caresianodelle tabelle elencate;
La sintassi data e’ semplificata (non include clausola esplicitadi JOIN che vedremo nella prossima lezione).
23 / 52
![Page 24: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/24.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Esempi
Example
1 Selezionare tutti i corsi con un credito:
SELECT ∗FROM corsi
WHERE crediti = 1;
2 Selezionare id, nome e cognome degli studenti:
SELECT DISTINCT id studente, nome, cognome
FROM persona, frequenza
WHERE persona.id persona = frequanza.id studente;
σE (R1 × R2) ≡ R1 ./E R2: La query sopra realizza unequi-join!
24 / 52
![Page 25: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/25.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Pseudonimi e Alias
FROM<nome tab> [ [ AS ]<alias> ]
Per chiarezza, ogni nome di colonna puo’/deve essere scrittoprefissandolo con il nome della tabella,
si puo’ usare uno pseudonimo (alias) in luogo del nome ditabella:
25 / 52
![Page 26: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/26.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Esempi
Example
SELECT f .id studenteFROM frequenza AS fWHERE f .id corso = 7;
Example
SELECT corso.id corsoFROM corso, frequenzaWHERE corso.id corso = frequenza.id corso AND id studente = 7;
26 / 52
![Page 27: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/27.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Esempi
Example
SELECT f .id studenteFROM frequenza AS fWHERE frequenza.id corso = 7;
wrong!
Example
SELECT corso.id corsoFROM corso, frequenzaWHERE corso.id corso = frequenza.id corso AND id studente = 7;
27 / 52
![Page 28: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/28.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Esempi
Example (Self-Join e Alias)
genitore figlio
Giorgio FabioMaria AnnaMilva Paolo
genitore figlio
Fabio LucaAnna LucaMilva Genoveffa
L’uso di alias e’ forzato quando si deve eseguire una self-join:
Chi sono i nonni di Luca?SELECT g1.genitore AS nonnoFROM genitore AS g 1, genitore AS g 2WHERE g1.figlio = g2.genitore AND g2.figlio = ’Luca’ ;
28 / 52
![Page 29: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/29.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Ordinamento del risultato
[ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Per ordinare il risultato di una query secondo i valori di una o piu’colonne:
si introduce la clausola ORDER BY,
per ogni colonna si specifica se l’ordinamento e’ per valoriascendenti (operatore ASC) o discendenti (operatore DESC)
come nella clausola SELECT
29 / 52
![Page 30: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/30.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Ordinamento del risultato
[ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Per ordinare il risultato di una query secondo i valori di una o piu’colonne:
si introduce la clausola ORDER BY,
per ogni colonna si specifica se l’ordinamento e’ per valoriascendenti (operatore ASC) o discendenti (operatore DESC)
come nella clausola SELECT
30 / 52
![Page 31: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/31.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Ordinamento del risultato
[ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Per ordinare il risultato di una query secondo i valori di una o piu’colonne:
si introduce la clausola ORDER BY,
per ogni colonna si specifica se l’ordinamento e’ per valoriascendenti (operatore ASC) o discendenti (operatore DESC)
come nella clausola SELECT
31 / 52
![Page 32: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/32.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Ordinamento del risultato
[ ORDER BY<espressione> [ ASC | DESC ] [, . . . ] ]
Per ordinare il risultato di una query secondo i valori di una o piu’colonne:
si introduce la clausola ORDER BY,
per ogni colonna si specifica se l’ordinamento e’ per valoriascendenti (operatore ASC) o discendenti (operatore DESC)
come nella clausola SELECT
32 / 52
![Page 33: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/33.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Ordinamento del risultato: Esempio
Example
SELECT id persona, cognome, nomeFROM personaORDER BY cognome ASC, nome ASC;
id persona cognome nome
19 Bianchi Francesco2 Rossi Andrea
17 Rossi Emilio. . . . . .
33 / 52
![Page 34: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/34.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Ordinamento del risultato: Esempio
Example
SELECT id persona, cognome, nomeFROM personaORDER BY cognome ASC, nome ASC;
id persona cognome nome
19 Bianchi Francesco2 Rossi Andrea
17 Rossi Emilio. . . . . .
34 / 52
![Page 35: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/35.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
La Clausola WHERE
[ WHERE<predicato> ]
Permette di filtrare le tuple della tabella intermedia in basealla soddisfazione di un predicato
Vine usata logica a tre valori: solo le tuple per cui il predicatoe’ vero appaiono nel risultato.
I predicati possono essere combinati usando gli operatori logiciAND, OR, NOT.
35 / 52
![Page 36: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/36.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
La Clausola WHERE
Example
1 Persone di nome Giovanni nate prima del 1970:
SELECT ∗FROM personaWHERE nome = ’Giovanni’ AND data nascita <= ’01/01/1970’;
36 / 52
![Page 37: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/37.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Predicati: Funzioni e Operatori
[ WHERE<predicato> ]
Un predicato e’ costituito da una formula logica su delleespressioni;
Vedremo ora gli operatori e le funzioni piu’ comuni chepossono essere utilizzati nella definizione di espressioni epredicati;
In PostgreSQL i comandi \df e \do permettono di elencare lalista degli operatori e delle funzioni disponibili.
37 / 52
![Page 38: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/38.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Operatori Logici
Operatore Descrizione
AND congiunzione logicaOR disgiunzione logicaNOT negazione logica. . . . . .
38 / 52
![Page 39: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/39.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Operatori di Comparazione
Operatore Descrizione
<x> = <y> <x> e’ uguale a <y>
<x> != <y> o <x> <> <y> <x> e’ diverso da <y>
<x> < (<=,>,>=) <y> <x> e’ minore (minore o uguale,maggiore, maggiore uguale) a <y>
<a> BETWEEN <x> AND <y> equivale ad <a> >= <x> AND a<=y
<a> NOT BETWEEN <x> AND <y> equivale ad <a> < <x> OR a>y
<x> IS NULL vero se <x> ha valore NULL
<x> IS NOT NULL vero se il valore di <x> non e’ NULL<x> IS DISTINCT FROM <y> <x> e’ diverso da <y>, supporta NULL
<x> IS NOT DISTINCT FROM <y> <x> e’ uguale a <y>, supporta NULL
39 / 52
![Page 40: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/40.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Operatori di Comparazione
Example
1 Corsi il cui numero di crediti e’ strettamente superiore a 2:
SELECT ∗FROM corsoWHERE crediti > 2;
2 Corsi il cui numero di crediti e’ definito:
SELECT ∗FROM corsoWHERE crediti IS NOT NULL;
3 Corsi il cui numero di crediti e’ compreso tra 2 e 3:
SELECT ∗FROM corsoWHERE crediti BETWEEN 2 AND 3;
40 / 52
![Page 41: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/41.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Operatori Matematici
Operatore Descrizione
<x> + <y> addizione<x> - <y> sottrazione<x> * <y> moltiplicazione<x> / <y> divisione<x> % <y> resto
@( <x>) valore assoluto. . . . . .
41 / 52
![Page 42: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/42.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Funzioni ed Operatori su Stringhe
Operatore Descrizione
<exp> || <exp> concatenazione di stringheCHAR LENGTH(<st>) Numero caratteri della stringa
LOWER(<st>) converte caratteri stringa in minuscoleUPPER(<st>) converte caratteri stringa in maiuscole
. . . . . .
42 / 52
![Page 43: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/43.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Funzioni ed Operatori su Stringhe
Example
1 SELECT ’2*3=’ || 2 ∗ 3;———–2*3=6
2 SELECT CHAR LENGTH(’Anna’);———–4
3 SELECT LOWER(’Anna’);———–anna
43 / 52
![Page 44: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/44.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Funzioni ed Operatori di Corrispondenza di Pattern
Operatore LIKE
l’operatore LIKE mediante le ’wildcard’ (un caratterearbitrario) e % (una stringa arbitraria), permette di esprimeredei pattern su stringa:
Example
Cognomi delle persone che finiscono con una ’i’ ed hanno una ’i’ inseconda posizione:SELECT cognomeFROM personaWHERE cognome LIKE ’ i%i’;
44 / 52
![Page 45: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/45.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Operatore IN
L’operatore IN permette di esprimere condizioni diappartenenza ad un insieme
Example
SELECT cognomeFROM personaWHERE id persona IN (5,18,30);
45 / 52
![Page 46: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/46.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Funzioni su Data/Ora
Funzione Descrizione
CURRENT TIME Ora correnteCURRENT DATE Data corrente
CURRENT TIMESTAMP Data e ora corrente. . . . . .
46 / 52
![Page 47: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/47.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Sommario
A titolo di ricapitolazione, vediamo come quanto visto a lezione cipermette di definire in SQL gli operatori dell’algebra relazionale:
operatore di proiezione
operatore di selezione
operatore di prodotto cartesiano
theta-join
47 / 52
![Page 48: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/48.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Sommario
Traduzione dell’operatore di proiezione
L’operatore di proiezione Π(A1,...,An)(relazione) si traduce in SQL come:
SELECT DISTINCT A1, . . . ,An FROM relazione;
DISTINCT permette di eliminare tuple identiche nel risultato.
Example
Ottenere un elenco di cognomi delle persone:
SELECT DISTINCT cognome FROM persona;
48 / 52
![Page 49: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/49.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Sommario
Traduzione dell’operatore di selezione
L’operatore di selezione σ(predicato)(relazione) si traduce in SQL come:
SELECT ∗ FROM relazione WHERE predicato;
Example
Selezionare i corsi con 2 crediti:
SELECT ∗ FROM corso WHERE crediti = 2 ;
49 / 52
![Page 50: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/50.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Sommario
Traduzione dell’operatore di prodotto cartesiano
L’operatore di prodotto cartesiano relazione1 × relazione2 si puo’tradurre in SQL mediante la query:
SELECT ∗ FROM relazione1, relazione2;
50 / 52
![Page 51: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/51.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Sommario
Traduzione dell’operatore di theta-join
L’operatore di join:
relazione1 ./exp relazione2 ≡ σexp(relazione1 × relazione2)
si puo’ tradurre in SQL mediante la query:
SELECT ∗ FROM relazione1, relazione2WHERE exp;
Example
Produrre un elenco dei corsi con i relativi insegnanti, mediante unequi-join sulle tabelle persona e corsoSELECT ∗ FROM persona, corsoWHERE persona.id persona = corso.id insegnante;
51 / 52
![Page 52: Basi di Dati: Corso di laboratorio - Lezione 3 · 2010-03-29 · Lezione 3 Ra aella Gentilini 1/52. Il DML di SQL: Interrogazione di una BD Sommario 1 Il DML di SQL: Interrogazione](https://reader034.fdocument.pub/reader034/viewer/2022050408/5f85842db0a4b465e0598c8c/html5/thumbnails/52.jpg)
Il DML di SQL: Interrogazione di una BD
La Clausola SELECTLa Clausola FROMLa Clausola ORDER BYLa Clausola WHEREFunzioni e Operatori
Bibliografia
Bibliografia ed Approfondimenti
R.A.Elmasri, S.B. Navathe. Sistemi di Basi di Dati – Fondamenti:Capitolo 8 (8.4).
Capitolo 6 (Data Manipulation) del manuale di PostgreSQL(http://www.postgresql.org/docs/manuals/)
52 / 52