SQL è un linguaggio utile all’ interrogazione e alla gestione di dati mediante l’ utilizzo di costrutti denominati query. Con SQL si può leggere, aggiornare, cancellare ed inserire dei dati in un database, per fare questo dovremo utilizzare i SELCET, gli UPDATE, i DELETE o gli INSERT; vediamoli nel dettaglio:
SELECT
La funzione SELECT ci permette di svolgere il lavoro fondamentale che deve fare un database, cioè recuperare dei dati memorizzati.
SELECT <lista_campi/*> FROM <nome_tabella> [WHERE <condizione_logica_boooleana>]
Il risultato di una SELECT è una tabella. Conterrà i dati di tutti i record della tabella interrogata che soddisfano la condizione del WHERE (quando presente).
La condizione WHERE è opzionale: serve per filtrare i record che verranno estratti dalla tabella. Qual’ ora non fosse presente, invece, verranno estratti tutti i dati senza alcuna eccezione.
E’ possibile estrarre solo una parte dei campi della tabella (specificandoli uno per uno) oppure tutti, con la “parola chiave” * dopo il SELECT, come in esempio.
ESEMPIO :
SELECT * FROM users WHERE username='Maicol' AND password='ciao90'
In questo caso verranno estratti tutti i dati dalla tabella “users” dove l’username equivale a “Maicol” e la Password a “ciao90”.
Parametri “avanzati” per la SELECT
Oltre alla normale operazione di selezione, è possibile “arricchire” la nostra query con dei parametri avanzati, che ci permetteranno di fare diverse cose.
I parametri più comuni che oggi citeremo sono:
- DISTINCT : per non estrarre record duplicati;
- GROUP BY : per raggruppare i record nel risultato: tutti i record con valori uguali verranno ridotti a uno;
- ORDER BY : per ordinare i record (in modo crescente o decrescente);
- LIMIT : per estrarre solo un certo numero di record partendo da un record preciso;
SELECT DISTINCT <lista_campi/*> FROM <nome_tabella> [WHERE <condizione_logica>] GROUP BY <nome_campo / posizione> ORDER BY <nome_campo / posizione> [ASC/DESC] LIMIT [<record_di_partenza>,] <numero_record>
ESEMPIO:
SELECT DISTINCT username,password FROM users ORDER BY id ASC LIMIT 0,10
INSERT
Come dice il suo nome questa istruzione serve per inserire dei dati in una tabella.
INSERT INTO <nome_tabella>[(<lista_campi>)] VALUES (<lista_valori>)
- Il numero di valori specificati in <lista_valori> deve coincidere con il numero di campi specificato in <lista_campi> o, in caso della sua assenza, con il numero di campi della tabella in cui avviene la INSERT;
- Il tipo di ogni valore specificato in <lista_valori> deve coincidere con il tipo del rispettivo campo specificato in <lista_campi> o, in caso della sua assenza, con il tipo del corrispettivo campo della tabella in cui avviene la INSERT;
- Se la lista dei campi non è specificata, MySQL assume che tutti i campi della tabella debbano essere popolati;
Esempio corretto:
INSERT INTO users(username,password) VALUES('Maicol','ciao90')
Esempio scorretto:
INSERT INTO users(username,password) VALUES('Maicol')
UPDATE
Questa istruzione permette di modificare informazioni già esistenti in una tabella:
UPDATE <nome_tabella> SET <nome_campo>=, <nome_campo>=, … [WHERE <condizione_logica>]
- Anche in questo caso il valore deve essere dello stesso tipo del campo a cui viene assegnato;
- Con l’UPDATE dobbiamo stare molto attenti alla clausola WHERE. Se infatti non è specificata correttamente, si rischia che vengano aggiornate le righe sbagliate;
Esempio sicuro:
UPDATE users SET username='pippo' WHERE id=1
Esempio pericoloso:
UPDATE users SET username='pippo'
DELETE
Con questa istruzione cancelliamo record da una tabella.
DELETE FROM <nome_tabella> [WHERE <condizione_logica>]
Per la WHERE valgono le stesse considerazioni fatte per la UPDATE, qui però il rischio è ancora maggiore, in quanto stiamo cancellando fisicamente dei dati.
Esempio sicuro:
DELETE FROM users WHERE id=1
Esempio pericoloso:
DELETE FROM users
Con questo è tutto. Come la vecchia guida, anche questa è stata realizzata per esporre le principali basi di un argomento. Una guida per dummies, per inesperti.
Qual’ ora comunque aveste qualcosa da dire, problematiche o eventuali aggiunte da segnalarmi non esistate a farlo, commentate, commentate e commentate!!! 😉