INSERT – Inserimento dei nostri dati

INSERT – Inserimento dei nostri dati

Vorrei mostrarVi come poter caricare ed eventualmente cancellare i dati dalla tabella che avevamo creato nel post precedente.
Basta effettuare il login al nostro server:
mysql -uUTENTE -hHOST_di_DESTINAZIONE -p

A questo punto utilizziamo il nostro "schema" sul quale lavoriamo:
USE video

INSERT - Inserimento dei nostri dati

Bene ora non ci rimane che caricare all'interno della tabella costruita nel post precedente i dati del primo attore. Il comando per poter fare questo è INSERT di cui si può facilmente ottenere la sintassi direttamente dal nostro monitor con:

h INSERT
=> Produrrà il seguente risultato:

mysql> h insert
Name: 'INSERT'
Description:
Syntax:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

Or:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
SET col_name={expr | DEFAULT}, ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

Or:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

INSERT inserts new rows into an existing table. The INSERT ... VALUES
and INSERT ... SET forms of the statement insert rows based on
explicitly specified values. The INSERT ... SELECT form inserts rows
selected from another table or tables. INSERT ... SELECT is discussed
further in [HELP INSERT SELECT].

URL: http://dev.mysql.com/doc/refman/5.0/en/insert.html

In poche parole significa che gli inserimenti possono essere effettuati in vario modo:

  1. INSERT INTO `nome_tabella` VALUES (valore_primo_campo, valore_secondo_campo etc...);
  2. INSERT INTO `nome_tabella` (`nome_campo1`, `nome_campo2`, etc..) VALUES
    (valore_primo_campo, valore_secondo_campo, etc...);

Le due tipologie di inserimento sono pressoché identiche, almeno al lato pratico.
Se desideriamo inserire anche più di un valore in modo consecutivo è possibile farlo con un'unica istruzione; prendendo i punti 1 e 2 visti sopra, avremmo:

  1.  INSERT INTO `nome_tabella` VALUES
    (valore1_primo_campo, valore1_secondo_campo etc...)
    (valore2_primo_campo, valore2_secondo_campo etc...);
  2. INSERT INTO `nome_tabella` (`nome_campo1`, `nome_campo2`, etc..) VALUES
    (valore1_primo_campo, valore1_secondo_campo etc...)
    (valore2_primo_campo, valore2_secondo_campo etc...);

Sebbene entrambe le tipologie siano molto simili tra loro e, sebbene si ottenga il medesimo risultato, c'è da considerare una distinzione di non poco conto, la dicitura più estesa (punto 2) è più chiara in quanto consente l'inserimento dei valori secondo un ordine che viene esplicitato, ma essendo essa più lunga se salvata o utilizzata come backup occuperà un maggiore spazio su disco a beneficio di una migliore comprensione.

Quindi il mio consiglio è quello di valutarne sempre il contesto d'uso.

EccoVi un esempio di inserimento dati per entrambe le metodologie sopra esposte, per la tabella attori creata precedentemente:

  1. INSERT INTO `attori` VALUES (1,'Al Pacino',NULL,NULL);
  2. INSERT INTO `attori` (`id`, `Attore`, `lnk_foto`, `foto`) VALUES (1,'Al Pacino',NULL,NULL);

Una piccola nota: Il campo `id` nel nostro caso è una chiave primaria di tipo AUTO-INCREMENT che volendo con il secondo metodo si può facilmente omettere.

Nel prossimo post vedremo in che modo si possono cancellare i dati appena inseriti.

Che altro dire??
Buon database a tutti !!
Post successivo

Pubblicato in Documentazione Tecnica, MySQL e taggato , .