Salta ai contenuti

INSERT

INSERT serve quando vuoi mettere nuovi dati dentro 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 colonne nome ed email con questi valori.”

Il primo valore, 'Luca', finisce nella prima colonna indicata, cioè nome. Il secondo valore, 'luca@email.it', finisce in email.

SQL permette anche forme più brevi, ma quando stai imparando è meglio indicare sempre le colonne.

Questa forma è poco chiara:

INSERT INTO clienti
VALUES (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 tra qualche mese capirai subito cosa stai inserendo e dove.

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.

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 ti sta proteggendo da un dato incompleto: non vuole salvare un cliente senza nome.

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 scrivono i valori booleani nello stesso identico modo, ma l’idea resta la stessa: ogni valore deve essere adatto alla sua colonna.

Fai un controllo veloce:

  • sto compilando le colonne obbligatorie?
  • i valori sono nell’ordine giusto?
  • ogni valore ha il tipo corretto?

Sono domande semplici, ma evitano molti errori.

  • INSERT INTO aggiunge nuove righe.
  • Conviene indicare sempre le colonne.
  • VALUES contiene i dati da inserire.
  • L’ordine dei valori deve seguire l’ordine delle colonne.
  • Il database può rifiutare dati mancanti o del tipo sbagliato.