Le basi di SQL: select, insert, update e delete

Le basi di SQL: select, insert, update e delete

 
 

SQL è il linguaggio di definizione e manipolazione dei dati universalmente usato nelle basi di dati relazionali. Esso ha le seguenti funzioni:

  • definizione dei dati: SQL permette di definire, in modo integrato, i tre livelli della base di dati: il livello esterno (viste), il livello logico (struttura delle tabelle e vincoli di integrità) e il livello fisico (memoriazzazione delle tabelle e indici) della base di dati;
  • aggiornamento dei dati: SQL permette di aggiornare l'istanza della base mediante inserimenti, cancellazioni e modifiche di tuple;
  • interrogazione sui dati: SQL consente di estrarre informazione presente nella base di dati.

Con SQL si può quindi leggere, aggiornare, cancellare ed inserire dei dati in un database, per fare questo dovremo utilizzare i comandi SELECT, gli UPDATE, i DELETE o gli INSERT; vediamoli nel dettaglio:

SELECT

Il comando Select è il comando di interrogazione (query) di SQL, e la sua potenza espressiva è tale da poter realizzare in poche righe interrogazioni che in altri linguaggi richiederebbero molte pagine di codice. Il risultato del comando è una tabella. La select prevede molte clausole che la rendono molto flessibile e potente.

La sintassi nella forma più semplice è:

SELECT  <elenco attributi>  FROM <elenco tabelle>  WHERE <condizione>

Il risultato di una SELECT è una tabella. Conterrà i dati di tutti i record della tabella interrogata che soddisfano la condizione del WHERE.
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='Silvia' AND password='pippo'

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:

  • Clausola AS: consente di cambiare il nome di un campo.
  • Clausola ORDER BY: produce una tabella ordinata secondo i campi specificati dopo la parola chiave BY;
  • Operatore GROUP BY: produce una tabella per dati raggruppati;
  • Operatore UNION, esegue l'unione di due comandi SELECT.
  • Clausola DISTINCT: elenca i valori di un campo eliminando i doppioni;
  • Funzione COUNT() produce in uscita il conteggio dei record che soddisfano le clausole della SELECT;
  • Funzioni statistiche: SUM(), AVG(), MAX(), MIN(): consentono di calcolare la somma, la media, il minimo e il massimo in una tabella;
  • Funzioni di stringa: UPPER(), LOWER(), TRIM(), SUBSTRING().
  • Funzioni di data: EXTRACT().
  • Predicato ALL;
  • Predicato [NOT] EXISTS: verifica se una data tabella è o no vuota;
  • Predicato IN: verifica se un dato valore appartiene o no ad un insieme;
  • Predicato IS [NOT] NULL: serve a verificare se un certo campo è o no vuoto;
  • Predicato LIKE: inserito nella clausola WHERE consente di confrontare due stringhe in modo molto flessibile;

ESEMPIO:

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>

SELECT DISTINCT username,password FROM users ORDER BY id ASC LIMIT 0,10

INSERT

Il comando Insert serve ad inserire una o più nuove tuple nella tabella indicata; si tratta quindi di un'operazione di transazione; Insert equivale all'Unione del modello relazionale, ma con una differenza: non c'è alcun controllo sui "doppioni", eventuali tuple già presenti nella tabella vengono comunque inserite dando luogo a duplicati.

La sintassi è:

INSERT INTO <Tabella>  [<lista attributi>]  VALUES (<lista valori>)  

dove <lista attributi> è facoltativa; 

se non è presente si intende che devono essere specificati tutti i campi; se invece la lista c'è, allora dovranno essere specificati solo i campi elencati nello stesso ordine.

Esempio corretto:

INSERT INTO users(username,password) VALUES('Maicol','ciao90')

Esempio scorretto:

INSERT INTO users(username,password) VALUES('Maicol')

UPDATE

Il comando Update serve ad aggiornare i dati di una tabella; si tratta quindi di un operazione di transazione.

La sintassi è:

UPDATE <Tabella>  SET <nome campo> = <nuovo valore>  [WHERE <condizione>]  

I campi elencati alla clausola SET vengono aggiornati per tutti i record che soddisfanno la clausola WHERE. Quest'ultima può essere tralasciata ma in questo caso vengono aggiornati tutte le righe della tabella. Da usare con molta cautela!!

La situazione più frequente è che vengano aggiornati i campi di un record data la chiave; nell'esempio a destra si aggiornano i campi nome, cognome, data di nascita dato il Codice Fiscale (CF) che ovviamente non è opportuno cambiare.

Esempio sicuro:

UPDATE users SET username='pippo' WHERE id=1

Esempio pericoloso:

UPDATE users SET username='pippo'

DELETE

Il comando Delete serve a cancellare una o più tuple di un data-base; si tratta quindi di un operazione di transazione.

La sintassi è:

DELETE FROM <Tabella>  WHERE <condizione>  

Vengono eliminate tutte le tuple che soddisfanno la condizione specificata dal WHERE; è quindi possibile eliminare un gran numero di dati con un solo comando; usare con cautela!


Esempio sicuro:

DELETE FROM users WHERE id=1

Esempio pericoloso:

1 DELETE FROM users

 

 
 

tags: SQL databases php mysql


Questo sito fa uso di cookie, anche di terze parti, per migliorare la tua esperienza di navigazione. Accettando questa informativa dai il consenso al loro utilizzo. È possibile modificare le impostazioni dei cookie o ottenere ulteriori informazioni qui: Politica dei cookies.