Questo articolo contiene INSERT
di base di SQL istruzioni che i principianti possono utilizzare per inserire dati nelle tabelle del database.
Sintassi di base
La sintassi di base per l'inserimento di dati in SQL è la seguente:
INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);
Dove:
TableName
è il nome della tabella in cui vuoi inserire i datiColumn1
, etc sono i nomi delle colonne in cui vuoi inserire i datiValue1
, ecc sono i valori che stai inserendo in quelle colonne. L'ordine di questi valori deve corrispondere all'ordine in cui hai elencato le colonne (ad esempioValue1
va inColumn1
, ecc).
Puoi omettere i nomi delle colonne se stai inserendo valori in tutte le colonne. In tal caso, puoi utilizzare la seguente sintassi:
INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);
Si noti che alcuni DBMS utilizzano una sintassi più complessa di questa (cioè offrono più opzioni), ma questa è generalmente la sintassi di base richiesta per inserire i dati in una tabella.
Inserisci in tutte le colonne
Ecco un esempio di base che inserisce i dati in tutte le colonne della tabella:
INSERT INTO PetTypes
VALUES( 1, 'Bird' );
In questo caso, ci sono due colonne in PetTypes
tabella e stiamo inserendo valori in entrambe le colonne, pertanto non è necessario specificare i nomi delle colonne.
L'istruzione di cui sopra equivale a fare questo:
INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );
Possiamo controllare i nostri dati eseguendo un SELECT
dichiarazione.
SELECT * FROM PetTypes;
Risultato:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | +-------------+-----------+
Inserisci in alcune colonne
Ecco un esempio di base che inserisce i dati solo in alcune delle colonne della tabella:
INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );
Questa tabella ha in realtà quattro colonne, ma inseriamo dati solo in tre di queste colonne. Possiamo vederlo quando eseguiamo un SELECT
dichiarazione contro la tabella dopo aver inserito i dati.
SELECT * FROM Users;
Risultato:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | +----------+-------------+------------+-----------------------------+
Come inserire valori nell'ordine sbagliato
Il metodo dell'elenco di colonne ti consente di inserire dati che non sono nello stesso ordine:
INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );
In questo esempio ho riorganizzato l'ordine delle colonne e i rispettivi valori. Fortunatamente, l'elenco delle colonne fornisce al DBMS indicazioni su dove inserire ciascun valore.
Quindi ora, se selezioniamo i nostri dati, vedremo che sono stati inseriti nelle colonne corrette.
SELECT * FROM Users;
Risultato:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | | 2 | Bart | Pitt | 2020-11-21 05:30:07.4456867 | +----------+-------------+------------+-----------------------------+
Inserisci il risultato di una query
È anche possibile inserire il set di risultati di una query in una tabella. Ci sono un paio di approcci che puoi adottare con questo.
- Usa
INSERT INTO... SELECT
dichiarazione. In questo caso, devi prima creare la tabella, prima di inserirvi un set di risultati di query. - Utilizzare l'istruzione CREATE TABLE … AS SELECT. Questo metodo crea automaticamente una nuova tabella in base al set di risultati della query, quindi inserisce tali risultati nella tabella. Sebbene questo metodo sia conforme allo standard SQL, non è supportato da tutti i DBMS.
- Usa il
SELECT INTO
dichiarazione. Questo è simile all'opzione precedente. Crea automaticamente una nuova tabella in base al set di risultati della query, quindi inserisce tali risultati nella tabella. Se il metodo precedente (CREATE TABLE ... AS SELECT
) non è supportato dal tuo DBMS, prova questo metodo.