Recuperare Dati in MySQL


Recuperare Dati in MySQLIn quest’articolo affronteremo l’utilizzo dell’ espressione SELECT per recuperare una o più colonne di dati da una tabella.

Come abbiamo spiegato già, le espressioni SQL sono costituite da termini di lingua inglese; tali termini vengono detti parole chiave e ogni espressione SQL è costituita da una o più parole chiave.

L’ espressione che sicuramente viene usata con più frequenza è la SELECT, la sua funzione è quella di recuperare informazioni da una o più tabelle, per un utilizzo corretto della SELECT è previsto che vengono specificate minimo due informazioni: quello che si intende selezionare e da dove si vuole selezionarlo.

Recupero di singole colonne

Iniziamo con qualcosa di semplice:

SELECT prod_nome
FROM prodotti;

Nell’ esempio l’espressione SELECT viene utilizzata per recuperare una sola colonna chiamata prod_nome dalla tabella prodotti. Il nome della colonna desiderata viene specificato subito dopo la parola chiave SELECT e la parola chiave FROM specifica il nome della tabella da cui recuperare i dati. Il risultato dell’espressione che abbiamo scritto è:

Output

prod_nome
olio
carote
pasta integrale
passata di pomodoro
prosciutto crudo
prosciutto cotto

Un’espressione SELECT semplice come quella che ho appena scritto visualizza tutte le righe di una tabella; i dati non vengono né filtrati né ordinati, vedremo nei prossimi esempi come fare. Bisogna ricordarsi che nel caso si immettano più espressioni SQL è necessario separarle con un punto e virgola (il carattere ; ) e nel caso si utilizzi il client a linea di comando mysql il punto e virgola è sempre necessario. Altro cosa da ricordarsi è che le espressioni SQL non fanno distinzione tra maiuscole e minuscole, pertanto l’immissione SELECT o select è indifferente (cosi come scrivere Select) . Durante l’elaborazione di un’espressione SQL tutto lo spazio vuoto al suo interno viene ignorato quindi l’immissione di spazi vuoti durante la scrittura di query è finalizzato alla semplificazione della lettura e del debug da parte dello sviluppatore.

Recupero di più colonne

Per recuperare più colonne da una tabella si utilizza la stessa espressione SELECT, ma in questo caso è necessario specificare i nomi delle colonne dopo la parola chiave SELECT; ogni colonna che si vuole recuperare deve essere separata dalla successiva colonna utilizzando una virgola (ma non dopo il nome dell’ultima colonna che si vuole recuperare altrimenti viene generato un errore).

SELECT prod_id,prod_nome,prod_prezzo
FROM prodotti;

Il risultato dell’espressione che abbiamo scritto è:

Output

prod_id prod_nome prod_prezzo
OL1
CA
PASINT
POM1
PROSCR0
PROSCT1
olio
carote
pasta integrale
passata di pomodoro
prosciutto crudo
prosciutto cotto
3.00
0.99
1.00
1.55
13.00
7.00

Recupero di tutte le colonne

Oltre alla possibilità di specificare le colonne che vogliamo recuperare, l’espressione SELECT consente anche di richiamare tutte le colonne senza che sia necessario elencarle tutte una per una. Questa operazione è possibile grazie al carattere jolly asterisco (*) al posto dei nomi delle colonne come nel seguente esempio:

SELECT *
FROM prodotti;

Utilizzare il carattere jolly dei vantaggi, infatti poiché il nome delle colonne non viene specificato (l’asterisco richiama tutte le colonne), è possibile recuperare colonne di cui non si conosce il nome.

Recupero di righe distinte

Come si è visto, l’ espressione SELECT recupera tutte le righe corrispondenti alla richiesta, tuttavia nel caso in cui non si desideri recuperare ogni occorrenza di tutti i valori si può agire in questo modo:

SELECT DISTINCT vend_id
FROM prodotti;

SELECT DISTINCT vend_id chiede a MySQL di recuperare da vend_id solo righe distinte (cioè univoche senza doppioni), se utilizzata la parola chiave DISTINCT deve essere messa prima dei nomi delle colonne (ed avrà effetto su tutte le colonne)

Limitare i risultati

Le espressioni con la parola chiave SELECT recuperano tutte le righe selezionate, in genere tutte le righe della tabella specificata; per recuperare solo la prima o le prime righe bisogna utilizzare la parola chiave LIMIT , di seguito un esempio:

SELECT prod_nome
FROM prodotti
LIMIT 3;

L’espressione precedente utilizza la parola chiave SELECT per recuperare una singola colonna ; LIMIT 3 chiede a MySQL di recuperare un massimo di 3 righe:

prod_nome
olio
carote
pasta integrale

Per ottenere le 3 righe successive è necessario specificare il punto di inizio e il numero di righe da recuperare, come in questo esempio:

SELECT prod_nome
FROM prodotti
LIMIT 3,3;
prod_nome
passata di pomodoro
prosciutto crudo
prosciutto cotto

Concludendo LIMIT con un solo valore parte sempre dalla prima riga e il valore specifica il numero di righe da recuperare; LIMIT con due valori parte dalla riga corrispondente al primo valore (ricordarsi che la prima riga recuperata è la riga 0, non la riga 1; quindi un eventuale espressione LIMIT 1,1 richiama la seconda riga, non la prima).
Se non è presente un numero sufficiente di righe da recuperare MySQL (se per esempio, si è immesso LIMIT 10,5 per una tabella che ha solo 13 righe), MySQL recupera le righe disponibili.

Utilizzo dei nomi qualificati completi per le tabelle

Gli esempi SQL utilizzati finora si riferiscono a colonne indicandole con il nome; è possibile recuperare le colonne utilizzando anche il nome qualificato completo (ovvero utilizzando sia il nome della tabella sia quello della colonna):

SELECT prodotti.prod_nome
FROM prodotti;

Questa espressione SQL ha la stessa funzionalità della prima espressione che abbiamo illustrato nell’articolo, con la differenza che in questo caso è stato utilizzato il nome qualificato completo della colonna; è possibile utilizzare i nomi qualificati completi anche per le tabelle:

SELECT prodotti.prod_nome
FROM prova_wordpress.prodotti;

Esistono situazioni in cui in nomi qualificati completi sono indispensabili, come vedremo nei prossimi articoli.


Lascia un Commento!