Il comando INSERT INTO in MariaDB consente di aggiungere nuovi record a una tabella già esistente. Si tratta di uno dei comandi SQL fondamentali, utilizzato per aggiungere nuovi dati a un database o ampliare le informazioni già presenti.

Cos’è il comando INSERT in MariaDB?

Il comando INSERT in MariaDB consente di inserire nuovi dati in una tabella, aggiungendo intere righe alla struttura esistente. Ogni volta che un utente si registra, invia un modulo o crea un nuovo prodotto, il sistema esegue in background il comando INSERT INTO.

Durante l’inserimento, MariaDB verifica che i valori corrispondano ai tipi di dati delle colonne e che tutti i campi obbligatori siano compilati. Se i valori violano restrizioni quali NOT NULL, UNIQUE o FOREIGN KEY, il database rifiuta l’operazione. Pertanto, la struttura della tabella di destinazione e l’indicazione corretta delle colonne sono fondamentali per l’utilizzo di INSERT.

Qual è la sintassi del comando INSERT INTO in MariaDB?

La sintassi standard per INSERT INTO è:

INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);
sql
  • table_name indica la tabella di destinazione, dove i dati verranno scritti.
  • L’elenco delle colonne (column1, column2, ...) è facoltativo, ma consigliato.
  • Nel campo VALUES si specificano i valori da inserire nelle colonne indicate.

I valori vengono associati alle colonne secondo l’ordine definito. Se il numero o l’ordine dei valori non corrisponde a quello delle colonne, si verifica un errore.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estremamente vantaggiose e potenti core dedicati
  • Massima flessibilità senza periodo contrattuale minimo
  • Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7

Quali parametri e varianti esistono per INSERT INTO in MariaDB?

Il comando INSERT INTO è flessibile e può essere adattato a diversi casi d’uso. Le principali varianti sono:

Elenco delle colonne

È possibile indicare tutte le colonne o solo alcune. Se non viene specificato l’elenco delle colonne, MariaDB si aspetterà un valore per ogni colonna definita nella tabella, nello stesso ordine in cui sono state create.

INSERT INTO users VALUES (1, 'Anna', 'anna@example.com');
sql

Se desideri compilare solo colonne specifiche, esegui il seguente comando:

INSERT INTO users (name, email) VALUES ('Anna', 'anna@example.com');
sql

In questo caso, vengono compilati solo i campi name ed email.

Inserire più righe

Questa sintassi è più efficiente rispetto a più comandi MariaDB INSERT singoli, soprattutto in caso di grandi volumi di dati:

INSERT INTO products (name, price)
VALUES ('pen', 1.50),
    ('notepad', 2.00),
    ('bag', 9.90);
sql

INSERT IGNORE

Con il comando IGNORE, MariaDB ignora le righe che violano le restrizioni e continua con le restanti.

INSERT IGNORE INTO users (id, name) VALUES (1, 'Anna');
sql

INSERT ... ON DUPLICATE KEY UPDATE

Questa sintassi permette di aggiornare una riga esistente in caso di conflitto su una chiave univoca:

INSERT INTO users (id, name)
VALUES (1, 'Anna')
ON DUPLICATE KEY UPDATE name = 'Anna';
sql

È utile per combinare inserimento e aggiornamento in un’unica istruzione, ad esempio nei processi di importazione, sincronizzazione o operazioni automatizzate.

Inserire i dati con SELECT

Con SELECT puoi copiare record da una tabella all’altra:

INSERT INTO archive_orders (id, status)
SELECT id, status FROM orders WHERE status = 'completed';
sql

Esempi d’uso per il comando INSERT INTO in MariaDB

Di seguito alcuni scenari pratici per l’uso di INSERT INTO.

Registrazione utenti

In questo esempio, MariaDB aggiunge una nuova persona alla tabella users. I valori delle colonne name ed email provengono da un modulo o da un’applicazione. Il valore NOW() restituisce la marca temporale della registrazione, ovvero il momento esatto in cui l’utente si registra:

INSERT INTO users (name, email, created_at)
VALUES ('Lena', 'lena@example.com', NOW());
sql

Questo metodo è adatto ai moduli web di registrazione, dove ogni inserimento viene registrato direttamente nel database. È importante che created_at sia di tipo DATETIME o TIMESTAMP, in modo che NOW() venga memorizzato correttamente.

Copiare dati da un’altra tabella

Questo esempio mostra come trasferire dati esistenti da una tabella (orders) a un’altra tabella (archive_orders). MariaDB seleziona tutti gli ordini con lo stato 'completed' e trasferisce le colonne id e status.

INSERT INTO archive_orders (id, status)
SELECT id, status FROM orders WHERE status = 'completed';
sql

Questi comandi vengono utilizzati per l’archiviazione, la pulizia dei dati e la creazione di report. Ricordati di verificare sempre che la struttura, ad esempio i tipi di colonna, sia la stessa nella tabella di origine e nella tabella di destinazione, altrimenti MariaDB non eseguirà il comando.

Managed Database Services
Concentrati sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni flessibili e su misura
  • Data center situati in Europa
Hai trovato questo articolo utile?
Vai al menu principale