Capitolo 1


Introduzione alle query

Prime elementari regole

La sintassi del linguaggio SQL è abbastanza flessibile, sebbene ci siano delle regole da rispettare come in qualsiasi linguaggio di programmazione.

SELECT COGNOME, NOME
FROM PRESIDENTE
WHERE COGNOME = ‘Pertini’

In questo esempio tutti i caratteri, a parte ‘Pertini’, sono scritti in maiuscolo, ma non deve essere necessariamente così. Avremmo potuto anche scrivere così:

select cognome, nome
from presidente
where cognome = ‘Pertini’

si noti però che ‘Pertini’ è scritto sempre nello stesso modo, infatti i riferimenti ai contenuti di un database devono essere scritti con lo stesso tipo di caratteri in cui sono stati registrati.

Le parole chiave che abbiamo usato nella query sono:

‘cognome’ e ‘nome’ sono dei campi e ‘presidente’ è una tabella. Quindi il comando recita: seleziona visualizzandoli, i campi cognome e nome della tabella presidente la dove cognome = ‘Pertini’.

Esempio:

ASSEGNI
Assegno Beneficiari Importo Note
1 Computer Shop 500.000 Stampante
2 Assicurazioni ASSO 954.000 Assicurazioni automobili
3 SNAM 650.000 Riscaldamento casa
4 Supermarket GS 490.000 Alimentari
5 Scuola 490.000 Scuola di musica

con l’espressione:

select * from assegni;

si ottiene:

Assegno Beneficiari Importo Note
1 Computer Shop 500.000 Stampante
2 Assicurazioni ASSO 954.000 Assicurazioni automobili
3 SNAM 650.000 Riscaldamento casa
4 Supermarket GS 490.000 Alimentari
5 Scuola 490.000 Scuola di musica

L’asterisco (*) di select * indica al database di fornire tutte le colonne associate alla tabella specificata dalla clausola FROM.

Come termina una istruzione SQL:
In alcune implementazioni si usa il punto e virgola (;) in altre il punto e virgola o lo slash (/).

Selezionare le colonne o cambiare l’ordine di apparizione

Esempi:

con l’espressione:

select importo, assegno from assegni;

dalla tabella precedente si ottiene:

Importo Assegno
500.000 1
954.000 2
650.000 3
490.000 4
490.000 5

Clausola DISTINCT (query senza duplicati)

Esaminando il contenuto del campo Importo della tabella ASSEGNI, si potrà notare che il valore 490.000 appare due volte. Possiamo visualizzare tale colonna facendo comparire i valori ripetuti una sola volta:

select distinct Importo from ASSEGNI;

Importo
500.000
954.000
650.000
490.000

Altro esempio:

DOCENTI
Nome Cognome Materia
Lara Bianco Italiano
Lara Bianco Storia
Mario Guidi Diritto
Mario Guidi Economia
Anna Rossi Matematica

Con l’espressione:

SELECT DISTINCT NOME, COGNOME
FROM DOCENTI;

si ottiene:

Nome Cognome
Lara Bianco
Mario Guidi
Anna Rossi

ESERCIZI (capitolo 1)

  1. Le seguenti query non funzionano. Perché?
    1. Select * from persone
    2. Select *
    3. Select nome cognome FROM persone;
       
  2. Le seguenti istruzioni forniscono lo stesso risultato?

    SELECT * FROM PERSONE;
    select * from persone;
     
  3. Quale delle seguenti istruzioni SQL è corretta?
    1. select * from persone;
    2. select * from persone
      /
    3. select *
      from persone;
       
  4. Utilizzando la tabella sottostante scrivere una query per selezionare soltanto il contenuto delle colonne ETA e NOME.
    ANAGRAFICA
    NOME
    COGNOME
    ETA
    Giovanni
    Bruni
    62
    Antonio Rossi 43
    Mario Rossi 49
    Piero Bianchi 37
    Esmeralda Gnocca 31

  5. Dalla tabella sottostante estrapolare, senza ripetizioni, le squadre di calcio presenti.
    TIFOSERIA
    NOME
    COGNOME
    SQUADRA_APPARTENENZA
    ARTURO ROSSI LAZIO
    GIOVANNI ROSSI LAZIO
    MARIO ROSSI LAZIO
    MARIA MARCHETTI NAPOLI
    MARIA MARCHETTI ROMA

  6. La seguente query è giusta? e se sbagliata, perché?

    SELECT NOME, DISTINCT SQUADRA_APPARTENENZA
    FROM TIFOSERIA;
     
  7. La seguente query è giusta? e se sbagliata, perché?

    SELECT DISTINCT COGNOME, NOME
    FROM TIFOSERIA;

  8. La seguente query è giusta? e se sbagliata, perché?

    SELECT DISTINCT *
    FROM TIFOSERIA;

Soluzioni agli esercizi del Capitolo 1


 
Precedente
INDICE
Segue
pag. 2 di 20