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.

  • ๐Ÿ“ฅ Sintassi di base: INSERT INTO `table_name`(column_1,column_2) VALUES (value_1,value_2) crea una nuova riga nella tabella specificata.
  • ๐Ÿ”ค Regola di citazione: I valori di tipo stringa e data richiedono virgolette singole; i valori numerici vanno inseriti senza virgolette.
  • 0๏ธโƒฃ Trappola dello zero principale: Un numero di telefono non racchiuso tra virgolette viene letto come un numero, quindi lo zero iniziale viene omesso silenziosamente.
  • ๐Ÿ”€ Ordine delle colonne: L'ordine delle colonne all'interno della query รจ irrilevante, a condizione che ogni valore venga mappato alla colonna corrispondente.
  • ๐Ÿ•ณ๏ธ Colonne omesse: Le colonne escluse dall'istruzione ricevono NULL o il loro valore predefinito dichiarato.
  • ๐Ÿ“‘ Da tavolo a tavolo: INSERT INTO โ€ฆ SELECT copia le righe tra le tabelle quando la struttura delle colonne รจ allineata.

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 Email
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 email
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);
}

DOMANDE FREQUENTI

MySQL Lo rifiuta con un errore di voce duplicata. Utilizzare INSERT IGNORE per saltare la riga senza generare errori, oppure INSERT โ€ฆ ON DUPLICATE KEY UPDATE per aggiornare invece la riga esistente.

Esegui SELECT LAST_INSERT_ID() subito dopo l'inserimento, oppure chiama mysqli_insert_id($conn) in PHP. Restituisce la chiave AUTO_INCREMENT generata per l'ultima riga sulla tua connessione.

Non concatenare mai l'input dell'utente nella stringa di query. Utilizza istruzioni preparate con parametri associati, in modo che i valori viaggino separatamente dalla stringa di query. SQL e non possono essere eseguiti come comandi.

Sรฌ. Gli assistenti IA trasformano fogli di calcolo o semplici descrizioni in istruzioni INSERT e MySQL banco di lavoro รจ possibile eseguirli. Verificare l'ordine delle colonne e le virgolette, poichรฉ un modello potrebbe indovinare lo schema.

Inseriscilo prima in una copia di sviluppo. Le righe generate dall'IA potrebbero rompere le chiavi esterne, superare la lunghezza delle colonne o inventare date non valide. Esegui il batch in una transazione in modo che possa essere annullato.

Riassumi questo post con: