Query utilizzata per estrarre dati da una tabella.
La sintassi č semplice: SELECT colonne FROM nome_tabella opzioni
Vediamo alcuni esempi:
SELECT nome FROM anagrafica
vengono selezionati solo i nomi dalla tabella anagrafica
SELECT nome,cognome FROM anagrafica
vengono selezionati sia i nomi che i cognomi dalla tabella anagrafica
SELECT * FROM anagrafica
vengono pescati tutti i valori contenuti nella tabella anagrafica (nome, cognome e indirizzo e-mail)
Vediamo quali opzioni prevede la query select:
WHERE condizione
: specifica un criterio con cui eseguire la ricerca.
LIKE variabile
: restituisce i risultati che comprendono la variabile specificata. Quando si utilizza il simbolo % si intende che si accetta qualunque sequenza di caratteri.
ORDER BY colonna
: se non viene specificato nient'altro, il risultato č ordinato in ordine crescente (alfabetico o numerico) a partire dalla colonna specificata. Per ordine in maniera decrescente si usa il comando DESC.
LIMIT numero
: limita il numero di risultati a quanto definito
Vediamo alcuni esempi:
SELECT * FROM anagrafica WHERE nome='Paolo'
vengono restituiti tutti i record che hanno come nome Paolo
SELECT * FROM anagrafica WHERE nome='Paolo' AND cognome='Rossi'
vengono restituiti tutti i record che hanno come nome Paolo e come cognome Rossi
SELECT * FROM anagrafica WHERE nome<>'Paolo'
vengono restituiti tutti i record che hanno il nome diverso da Paolo
SELECT * FROM anagrafica WHERE nome like 'Pa%'
vengono restituiti tutti i record che come hanno il nome che comincia con il valore "Pa", ad es. Paolo, Patrizia, Pasquale, etc.
SELECT * FROM anagrafica WHERE nome like '%lo'
vengono restituiti tutti i record che come hanno il nome che finisce con il valore "lo", ad es. Paolo, Bartolo, etc.
SELECT * FROM anagrafica WHERE nome like '%paol%'
vengono restituiti tutti i record che come hanno all'interno del nome il valore "paol", ad es. Paolo, Gianpaolo, Paolantonio, etc.
SELECT * FROM anagrafica ORDER BY telefono
i record risultanti vengono ordinati per numero di telefono, dal pių piccolo al pių grande
SELECT * FROM anagrafica ORDER BY nome DESC, cognome ASC
i record risultanti vengono ordinati in maniera crescente secondo il cognome e decrescente secondo il nome
SELECT * FROM anagrafica ORDER BY RAND()
i record risultanti vengono ordinati in maniera casuale (random)
SELECT * FROM anagrafica LIMIT BY 5
vengono restituiti gli ultimi 5 record estratti
where particolare
c'è la possibilità di includere una clausola where nome like 'numero%',
dove numero è un'intero da 0 a 9?