MySQL INSERT INTO Query: come aggiungere una riga nella tabella (esempio)
Cos'è INSERT INTO?
INSERIRE viene utilizzato per memorizzare i dati nelle tabelle. Il comando INSERT crea una nuova riga nella tabella per archiviare i dati. I dati vengono solitamente forniti da programmi applicativi eseguiti sul database.
Sintassi di base
Diamo un'occhiata alla sintassi di base di INSERT INTO MySQL comando:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
QUI
- INSERT INTO `table_name` è il comando che indica MySQL server per aggiungere una nuova riga in una tabella denominata "nome_tabella.".
- (column_1,column_2,…) specifica le colonne da aggiornare nel nuovo MySQL fila
- VALORI (valore_1, valore_2,…) specifica i valori da aggiungere nella nuova riga
Quando si forniscono i valori dei dati da inserire nella nuova tabella, è necessario considerare quanto segue:
- Tipi di dati stringa: tutti i valori stringa devono essere racchiusi tra virgolette singole.
- Tipi di dati numerici: tutti i valori numerici devono essere forniti direttamente, senza racchiuderli tra virgolette singole o doppie.
- Tipi di dati della data: racchiudi i valori della data tra virgolette singole nel formato "AAAA-MM-GG".
Esempio:
Supponiamo di avere il seguente elenco di nuovi membri della libreria che devono essere aggiunti al database.
Nomi completi | Data di nascita | genere | Indirizzo fisico | indirizzo postale | Numero di contatto | |
---|---|---|---|---|---|---|
Leonard Hofstadter | Maschio | Cresta di legno | 0845738767 | |||
Sheldon Cooper | Maschio | Cresta di legno | 0976736763 | |||
Rajesh Koothrappali | Maschio | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Maschio | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | Maschio | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Inseriamo i dati uno per uno. Inizieremo con Leonard Hofstadter. Tratteremo il numero di contatto come un tipo di dati numerico e non racchiuderemo il numero tra virgolette singole.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
L'esecuzione dello script precedente elimina lo 0 dal numero di contatto di Leonard. Questo perché il valore verrà trattato come un valore numerico e lo zero (0) all'inizio verrà eliminato poiché non è significativo.
Per evitare tali problemi, il valore deve essere racchiuso tra virgolette singole come mostrato di seguito:
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
Nel caso precedente, zero(0) non verrà eliminato
La modifica dell'ordine delle colonne non ha alcun effetto sulla query INSERT in MySQL purché i valori corretti siano stati mappati nelle colonne corrette.
La query mostrata di seguito dimostra il punto precedente.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Le query precedenti hanno saltato la colonna della data di nascita. Per impostazione predefinita, MySQL inserirà valori NULL nelle colonne omesse nella query INSERT.
Inseriamo ora il record per Leslie, a cui è fornita la data di nascita. Il valore della data deve essere racchiuso tra virgolette singole utilizzando il formato "AAAA-MM-GG".
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Tutte le query precedenti specificavano le colonne e le mappavano ai valori nel file MySQL inserire la dichiarazione. Se stiamo fornendo valori per TUTTE le colonne nella tabella, possiamo omettere le colonne da MySQL inserisci domanda.
Esempio:-
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');
Usiamo ora il Istruzione SELECT per visualizzare tutte le righe nella tabella del membro.
SELECT * FROM `members`;
numero_iscrizione | nomi_completi | genere | data di nascita | indirizzo fisico | indirizzo postale | contatto_numero | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Femmina | 21-07-1980 | Primo lotto di strada n. 4 | Borsa privata | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Femmina | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Roberto Fil | Maschio | 12-07-1989 | 3a strada 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Femmina | 14-02-1984 | 2a strada 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Maschio | NULL | Cresta di legno | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Maschio | NULL | Cresta di legno | NULL | 0976736763 | NULL |
7 | Rajesh Koothrappali | Maschio | NULL | Cresta di legno | NULL | 0938867763 | NULL |
8 | Leslie Winkle | Maschio | 14-02-1984 | Cresta di legno | NULL | 0987636553 | NULL |
9 | Howard Wolowitz | Maschio | 24-08-1981 | Parco Sud | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Notare che il numero di contatto di Leonard Hofstadter ha eliminato lo zero (0) dal numero di contatto. Gli altri numeri di contatto non hanno perso lo zero (0) all'inizio.
Inserimento in una tabella da un'altra tabella
Il comando INSERT può essere utilizzato anche per inserire dati in una tabella da un'altra tabella. La sintassi di base è quella mostrata di seguito.
INSERT INTO table_1 SELECT * FROM table_2;
Diamo ora un'occhiata a un esempio pratico. Creeremo una tabella fittizia per le categorie di film a scopo dimostrativo. Chiameremo la nuova tabella di categorie categorie_archive. Lo script mostrato di seguito crea la tabella.
CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Esegui lo script precedente per creare la tabella.
Ora inseriamo tutte le righe dalla tabella categorie nella tabella archivio categorie. Lo script mostrato di seguito ci aiuta a raggiungere questo obiettivo.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
L'esecuzione dello script di cui sopra inserisce tutte le righe dalla tabella categorie nella tabella archivio categorie. Nota che le strutture della tabella dovranno essere le stesse affinché lo script funzioni. Uno script più robusto è quello che mappa i nomi delle colonne nella tabella insert a quelli nella tabella contenente i dati.
La query mostrata di seguito ne dimostra l'utilizzo.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Esecuzione della query SELECT
SELECT * FROM `categories_archive`
fornisce i seguenti risultati mostrati di seguito.
categoria_id | category_name | Osservazioni |
---|---|---|
1 | Commedia | Film con umorismo |
2 | Romantico | Storie d'amore |
3 | Epico | Film antichi |
4 | Orrore | NULL |
5 | Fantascienza | NULL |
6 | Romanzo giallo | NULL |
7 | Action | NULL |
8 | Commedia romantica | NULL |
9 | Cartoni animati | NULL |
10 | Cartoni animati | NULL |
Esempio PHP: Inserisci in MySQL Table
La funzione mysqli_query viene utilizzata per l'esecuzione SQL interrogazioni.
La funzione SQL insert into table può essere utilizzata per eseguire i seguenti tipi di query:
- inserire
- Seleziona
- Aggiornanento
- delete
La sintassi è la seguente.
mysqli_query($db_handle,$query);
QUI,
“mysqli_query(…)” è la funzione che esegue le query SQL.
“$query” è la query SQL da eseguire
"$link_identifier" è facoltativo e può essere utilizzato per passare il collegamento di connessione al server
Esempio
$servername = "localhost"; $username = "alex"; $password = "yPXuPT"; $dbname = "afmznf"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully".'<br>'; } else { echo "Error: " . $sql. "<br>" . mysqli_error($conn); } }
Sommario
- Il comando INSERT viene utilizzato per aggiungere nuovi dati in una tabella. MySql aggiungerà una nuova riga, una volta eseguito il comando.
- La data e i valori della stringa devono essere racchiusi tra virgolette singole.
- Non è necessario che i valori numerici siano racchiusi tra virgolette.
- Il comando INSERT può essere utilizzato anche per inserire dati da una tabella in un'altra.