INSERT
Inserire una riga
Sezione intitolata “Inserire una riga”INSERT serve per aggiungere dati a una tabella.
Se la tabella è una rubrica, INSERT aggiunge un nuovo contatto. Se è un catalogo prodotti, aggiunge un nuovo prodotto.
Ecco un esempio semplice:
INSERT INTO clienti (nome, email)VALUES ('Luca', 'luca@email.it');Puoi leggerlo così:
“Nella tabella
clienti, riempi le colonnenomeed
Il primo valore, 'Luca', finisce nella prima colonna indicata, cioè nome. Il secondo valore, 'luca@email.it', finisce in email.
Scrivere i nomi delle colonne
Sezione intitolata “Scrivere i nomi delle colonne”SQL permette anche forme più brevi, ma quando stai imparando è meglio indicare sempre le colonne.
Questa forma è poco chiara:
INSERT INTO clientiVALUES (1, 'Luca', 'luca@email.it');Funziona solo se conosci esattamente l’ordine delle colonne nella tabella.
Questa invece si legge meglio:
INSERT INTO clienti (id, nome, email)VALUES (1, 'Luca', 'luca@email.it');Anche in seguito sarà chiaro che cosa stai inserendo e in quale colonna.
Inserire più righe insieme
Sezione intitolata “Inserire più righe insieme”Se devi aggiungere più clienti, puoi farlo con un solo INSERT:
INSERT INTO clienti (nome, email)VALUES ('Marta', 'marta@email.it'), ('Paolo', 'paolo@email.it');Ogni coppia tra parentesi crea una nuova riga.
Quando manca un valore
Sezione intitolata “Quando manca un valore”Non tutte le colonne devono essere sempre compilate.
Se una colonna è facoltativa, puoi non inserirla. Se invece è obbligatoria, per esempio perché ha NOT NULL, il database rifiuterà la riga.
Per esempio, se nome è obbligatorio, questa query può fallire:
INSERT INTO clienti (email)VALUES ('senza.nome@email.it');Il database rifiuta il dato perché nome è obbligatorio.
Attenzione ai tipi di dato
Sezione intitolata “Attenzione ai tipi di dato”Ogni colonna si aspetta un certo tipo di valore.
INSERT INTO prodotti (nome, prezzo, disponibile)VALUES ('Tastiera', 39.90, TRUE);Qui stai inserendo:
- un testo:
'Tastiera' - un numero decimale:
39.90 - un valore vero/falso:
TRUE
Non tutti i database rappresentano i valori booleani nello stesso modo, ma ogni valore deve essere compatibile con la sua colonna.
Prima di eseguire un INSERT
Sezione intitolata “Prima di eseguire un INSERT”Fai un controllo veloce:
- sto compilando le colonne obbligatorie?
- i valori sono nell’ordine giusto?
- ogni valore ha il tipo corretto?
Questi controlli evitano errori comuni.
Riepilogo rapido
Sezione intitolata “Riepilogo rapido”INSERT INTOaggiunge nuove righe.- Conviene indicare sempre le colonne.
VALUEScontiene i dati da inserire.- L’ordine dei valori deve seguire l’ordine delle colonne.
- Il database può rifiutare dati mancanti o del tipo sbagliato.