MySQL INSERT INTO Query: come aggiungere una riga nella tabella (esempio)
โก Riepilogo intelligente
MySQL La query INSERT INTO aggiunge nuove righe a una tabella, specificando esplicitamente le colonne di destinazione oppure fornendo un valore per ciascuna colonna. La corretta gestione delle virgolette per stringhe, numeri e date รจ fondamentale per garantire che i dati memorizzati rimangano intatti.

Cos'รจ INSERT INTO?
INSERIRE Il comando INSERT viene utilizzato per memorizzare i dati nelle tabelle. Il comando INSERT crea una nuova riga nella tabella per memorizzare i dati. I dati vengono solitamente forniti da programmi applicativi che vengono 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 essere racchiusi tra virgolette singole o doppie.
- Tipi di dati della data: racchiudi i valori della data tra virgolette singole nel formato "AAAA-MM-GG".
Inserimento di piรน righe contemporaneamente
Una singola istruzione INSERT puรฒ contenere diverse righe. Separare ciascun gruppo di valori con una virgola. Un'unica istruzione รจ piรน veloce di molte, perchรฉ l'indice viene aggiornato una sola volta.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Esempio di query INSERT INTO
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 | Cresta di legno | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Maschio | Cresta di legno | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | Maschio | Parco Sud | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Inseriamo i dati una riga alla volta, iniziando con Leonard Hofstadter. Tratteremo il numero di telefono come un dato numerico e non lo racchiuderemo tra virgolette singole.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
L'esecuzione dello script sopra riportato elimina lo zero iniziale dal numero di telefono di Leonard, poichรฉ il valore viene trattato come numerico e uno zero iniziale 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');
โ ๏ธ Suggerimento: I numeri di telefono, i codici postali e identificativi simili vengono memorizzati in una colonna di testo, ad esempio di tipo VARCHAR. Le colonne numeriche non possono mantenere uno zero iniziale.
Modifica dell'ordine delle colonne
La modifica dell'ordine delle colonne non ha alcun effetto sulla query INSERT in MySQL, purchรฉ i valori corretti siano stati mappati alle colonne corrette. La query seguente illustra questo punto.
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 Inserisce valori NULL nelle colonne omesse dalla query INSERT.
Inseriamo ora il record di Leslie, che contiene la data di nascita. Il valore della data deve essere racchiuso tra virgolette singole nel 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');
Omissione dell'elenco delle colonne
Tutte le query precedenti hanno denominato le colonne e le hanno mappate ai valori. Se forniamo valori per TUTTE le colonne nella tabella, l'elenco delle colonne puรฒ essere omesso da MySQL inserisci domanda.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Usiamo ora il Istruzione SELECT per visualizzare tutte le righe nella tabella dei membri.
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 |
Si noti che il numero di telefono di Leonard Hofstadter ha perso lo zero iniziale, esattamente come previsto. I numeri citati lo mantengono.
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;
Ora creeremo una tabella fittizia per le categorie di film, chiamata categories_archive. Lo script seguente 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 sopra per creare la tabella. Ora inseriamo tutte le righe dalla tabella delle categorie nella tabella dell'archivio delle categorie.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Affinchรฉ lo script funzioni, la struttura delle tabelle deve essere identica. Uno script piรน robusto mappa i nomi delle colonne della tabella di destinazione a quelli della tabella contenente i dati, come mostrato di seguito.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
L'esecuzione della query SELECT riportata di seguito produce i seguenti risultati.
SELECT * FROM `categories_archive`;
| 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 Query da PHP. Esegue istruzioni Insert, Select, Update ed Delete e ha la seguente sintassi.
mysqli_query($db_handle,$query);
QUI,
- โmysqli_query(โฆ)โ รจ la funzione che esegue le query SQL.
- โ$queryโ รจ la query SQL da eseguire.
- "$db_handle" รจ il link di connessione al server restituito da mysqli_connect.
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); }
