Concetti base di SQL: select, insert, update e delete

SQL
Tempo stimato di lettura: 3 minuti, 22 secondi
Pubblicato il 16 Maggio 2013

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!!! 😉

Shares