- Query SQL
Indice articolo
- Introduzione alla SQL (Structured Query Language)
- Query SQL
- Espressioni e operatori condizionali
- Operatori di insieme
- Funzioni SQL
- Funzioni sulle potenze, logaritmi e radici in SQL
- Funzioni in SQL - Esercizi capitolo 3
- Clausole SQL
- Clausole SQL - Esercizi capitolo 4
- Join - combinazioni di tabelle in SQL
- Subquery SQL
- Manipolare dati con SQL
- Creare e mantenere le tabelle
- View e Indici
- SQL - Soluzioni esercizi cap. 1
- SQL - Soluzioni esercizi cap. 2
- SQL - Soluzioni esercizi cap. 3
- SQL - Soluzioni esercizi cap. 4
- SQL - Soluzioni esercizi cap. 5
- SQL - Soluzioni esercizi cap. 6
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:
- SELECT
- FROM
- WHERE
‘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)
-
Le seguenti query non funzionano. Perché?
- Select * from persone
- Select *
-
Select nome cognome FROM persone;
-
Le seguenti istruzioni forniscono lo stesso risultato?
SELECT * FROM PERSONE;
select * from persone;
-
Quale delle seguenti istruzioni SQL è corretta?
- select * from persone;
-
select * from persone
/ -
select *
from persone;
-
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
-
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
-
La seguente query è giusta? e se sbagliata, perché?
SELECT NOME, DISTINCT SQUADRA_APPARTENENZA
FROM TIFOSERIA;
-
La seguente query è giusta? e se sbagliata, perché?
SELECT DISTINCT COGNOME, NOME
FROM TIFOSERIA; -
La seguente query è giusta? e se sbagliata, perché?
SELECT DISTINCT *
FROM TIFOSERIA;
Soluzioni agli esercizi del Capitolo 1
Art Net - 6.2.2006
Tags: SQL query

