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

Le basi di SQL: select, insert, update e delete
by Janeth Kent Date: 11-06-2013 SQL databases php mysql

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

 

 
by Janeth Kent Date: 11-06-2013 SQL databases php mysql visite : 17563  
 
Janeth Kent

Janeth Kent

Licenciada en Bellas Artes y programadora por pasión. Cuando tengo un rato retoco fotos, edito vídeos y diseño cosas. El resto del tiempo escribo en MA-NO WEB DESIGN AND DEVELOPMENT.

 
 
 

Articoli correlati

Come utilizzare i campi di dati JSON nei database MySQL

Ultimamente abbiamo potuto notare come la linea tra i database SQL e NoSQL è diventata sempre più sottile e confusa con ogni sistema cheadotta le caratteristiche dell'altro. I database MySQL…

Come configurare Google reCAPTCHA v3 in un form PHP

Un semplice esempio che mostra come aggiungere il nuovo Google reCAPTCHA v3 a un modulo PHP. reCAPTCHA v3 aiuta a rilevare il traffico abusivo senza dar fastidio agli utenti del nostro…

Php 7.2: Tutte le novitá

Il 30 Novembre 2017 è previsto il rilascio di una nuova versione del linguaggio di programmazione PHP, la 7.2. Questa versione è il frutto di 6 mesi di test con…

Rilaciato PHP 7 versione stabile

Abbiamo dovuto attendere mesi...Finalmente, hanno finalmente rilasciato la versione stabile di PHP 7.0.0, major release nata con lo scopo di soddisfare le istanze della community in tema di miglioramento delle prestazioni…

Winginx, un server nginx completo per windows

Quando abbiamo bisogno di montare un server Apache su Windows o Mac abbiamo opzioni WAMP e MAMP molto conosciute come XAMPP, tuttavia si stanno facendo popolari nuove soluzioni di server…

Come importare file .ICS in una tabella MySQL utilizzando PHP

Come noto, il formato file .ICS è un formato di calendario universale utilizzato per memorizzare le informazioni del calendario all'interno di un file di testo. In questo articolo vedremo come creare…

Le migliori estensioni di Firefox per sviluppatori web

Una delle pincipali ragioni della grande popolarità di Mozilla Firefox, oltre all'usabilità, è la sua enorme varietà di estensioni (add-ons) create con la finalità di migliorare l'esperienza di navigazione degli…

20 Cheat Sheets per sviluppatori web

I cheat sheet sono una risorsa utilissima per gli sviluppatori poiché consentono di avere a portata di mano una lista completa di tutte o quasi tutte le funzioni e la…

Google App Engine Hackathon @ EuroPython

Un hackathon (anche conosciuto come hack day o hackfest) è un evento al quale partecipano, a vario titolo, esperti di diversi settori dell'informatica: dagli sviluppatori di software ai programmatori ai…

I segreti tecnologici di un gigante del porno: YouPorn

The Internet is for porn. Questa frase si è convertita da numero musicale di Off-broadway ad un vero e proprio assioma del Web. I siti web porno più noti, ricevono milioni di visite giornaliere…

PHP: due funzioni per creare short urls

  Gli SHORT URLS fanno ormai parte di quelle cose di internet che ci suonono terribilmente familiari; per capirci uno short url lo vedete ogni qualvolta mettete un link su Twitter…

Tutorial Intermedio a mod_rewrite

1 Cosa fa il mod rewrite ? Il mod rewrite serve per il vostro server apache a far si che le pagine dinamiche (in questo caso in php) cambino totalmente estensione…