Inserire una nuova riga

MySQL
di Risorse.net

Per aggiungere una riga all'interno di una tabella in MySQL, si utilizza il termine INSERT.

Ammettiamo ora di voler aggiungere una nuova voce all'interno della tabella clienti:

INSERT INTO clienti(id,nome,descrizione,citta,ordini) VALUES('102','WebMilano Enterprise','Web agency','Milano','1')

In questo modo, abbiamo inserito i nuovi valori specificati tra le parentesi del termine VALUES all'interno della tabella clienti (INSERT INTO), i cui campi sono specificati anch'essi tra parentesi tonde.

Se dovessimo inserire tutti i valori nella nuova riga, possiamo anche omettere i vari campi all'interno della tabella. Ad esempio:

INSERT INTO clienti VALUES('102','WebMilano Enterprise','Web agency','Milano','1')

I campi che possono essere lasciati vuoti (perché auto incrementali, null ecc.) possono anche non essere inseriti all'interno della query.
Ammettiamo che "id" sia un campo incrementale e che "ordini" abbia come valore predefinito 1. Possiamo evitare di specificarli, ad esempio:

INSERT INTO clienti(nome,descrizione,citta) VALUES('WebMilano Enterprise','Web agency','Milano')

Durante l'operazione di inserimento, dobbiamo fare attenzione che a ogni campo specificato tra le parentesi tonde all'interno della tabella, sia associato un valore interno a VALUES. Se ad esempio inserissimo per errore più valori all'interno di VALUES rispetto a quanti ne avessimo specificati dopo INTO nomeTabella, MySQL ci risponderebbe con un errore simile:

ERROR 1136 - Column count doesn't match value count at row N

Dove N è la riga dell'errore.

In questo caso, significa appunto che nel campo VALUES abbiamo specificato più valori di quanto possibile.

Lo stesso errore ci verrebbe restituito se facessimo il caso opposto, ovvero mancasse l'inserimento di qualche campo specificato nella query.

Effettuare inserimenti multipli con MySQL
Quando dobbiamo inserire più righe all'interno di una sola tabella, a rigor di logica dovremmo usare tante istruzioni INSERT INTO quante sono le nuova righe. MySQL invece, consente gli inserimenti multipli con una sola istruzione INSERT INTO, ad esempio:

INSERT INTO clienti(nome,descrizione,citta)
                    VALUES('WebMilano.NET','WebAgency','Milano'),
                    VALUES('Latte & tipici','Casearia','Modena'),
                    VALUES('Auto e occasioni','Concessionaria','Palermo')


Ogni VALUES va separato dall'altro con una virgola ( , )

Nessuno ci vieta comunque di usare più INSERT INTO, ad esempio:

INSERT INTO clienti(nome,descrizione,citta) VALUES('WebMilano.NET','WebAgency','Milano')
INSERT INTO clienti(nome,descrizione,citta) VALUES('Latte & tipici','Casearia','Modena')
INSERT INTO clienti(nome,descrizione,citta) VALUES('Auto e occasioni','Concessionaria','Milano')


Anche se con più INSERT INTO avremo un calo di prestazioni e soprattutto uno spreco di codice inutile.

© Risorse.net (www.risorse.net)
pagina in versione stampabile:
http://www.risorse.net /mysql/inserire_riga.asp?print=ok