Nell’articolo precedente, abbiamo creato due tabelle e ora siamo pronti per utilizzare il comando SQL INSERT INTO TABLE e popolare queste tabelle con i dati. Per fare ciò, prepareremo le istruzioni in Excel e quindi incolleremo queste istruzioni in SQL Server ed eseguirle. Controlleremo anche il contenuto di entrambe le tabelle prima e dopo questi comandi utilizzando l’istruzione SELECT. Quindi, iniziamo.
INSERT INTO TABLE statement
Non ha senso creare strutture di database e non avere dati nel database. L’istruzione INSERT INTO TABLE è quella che useremo per risolvere questo problema. È una delle quattro importanti istruzioni SQL DML (Data Manipulation Language) SELECT FROM FROM, INSERT INTO TABLE, UPDATE SET SET e DELETE FROM The La sintassi completa è piuttosto complessa poiché l’INSERT INTO potrebbe anche essere un’istruzione molto complessa. Si prega di dare un’occhiata all’INSERTO T-SQL NELLA sintassi completa DELLA TABELLA qui.
In questo articolo useremo la sintassi semplificata, ma anche più comune:
INSERT INTO table_name (column_list) VALUES (column_values);
In tale istruzione INSERT INTO, dovrai definire il nome_tabella in cui stai inserendo i dati, elencare tutte le colonne (forse le userai tutte, ma forse solo alcune di esse), e quindi elencare tutti i valori. Si noti che i valori delle colonne devono corrispondere alla definizione dei tipi di colonna (ad esempio, non è possibile inserire un valore testuale nella colonna/attributo numerico).
Nel caso in cui si inseriscano tutti i valori nella tabella, non è necessario elencare tutte le colonne dopo il nome_tabella e si potrebbe usare una sintassi ancora più semplificata:
INSERISCI IN VALORI nome_tabella (column_values);
Personalmente preferisco elencare tutti i nomi delle colonne, perché questo approccio funzionerebbe anche se aggiungiamo nuove colonne alla tabella esistente.
-
Nota: L’istruzione INSERT INTO TABLE potrebbe essere scritta in modo tale da inserire più righe con 1 istruzione o anche combinata con l’istruzione SELECT.
La sintassi semplificata per uno di questi casi in cui le istruzioni INSERT e SELECT sono combinate è riportata di seguito:
INSERT INTO destination_table (column_list, …)
SELECT column_list
FROM source_table
WHERE condition;
INSERT INTO TABLE example
Prima di fare qualsiasi cosa, controlliamo cosa è memorizzato nelle nostre tabelle. Questo è il modello che abbiamo creato nel precedente articolo. Puoi vedere che abbiamo una tabella in cui memorizzeremo i dati relativi ai paesi e un’altra per i dati relativi alle città. Essi sono anche in relazione con gli altri, ma parleremo di questo nel seguente articolo:
per controllare il contenuto di queste due tabelle, useremo due semplici istruzioni SELECT:
1
2
|
SELEZIONARE * DA paese;
SELECT * FROM city;
|
e non è l’argomento di questo articolo, va detto che il suo sintassi di base è:
SELEZIONARE 1 o più attributi DA tavolo;
L’asterisco (*) dopo aver selezionato rappresenta che si desidera visualizzare i valori di tutti gli attributi/colonne dalla tabella nel risultato della query.
Come previsto, non c’è nulla in queste due tabelle e SQL Server restituisce il risultato, come mostrato nell’immagine qui sotto. Le istruzioni restituiscono i nomi delle colonne dalle tabelle che abbiamo usato nella query SELECT, ma non c’è nulla sotto questi nomi di colonna. Puoi guardarlo come un foglio Excel vuoto con nomi di colonne definiti (intestazioni). Sai che tipo di dati dovrebbe essere lì, ma non c’è nulla:
Ora, dobbiamo cambiarlo.
Innanzitutto, popoleremo la tabella paese utilizzando le seguenti istruzioni INSERT INTO TABLE:
1
2
3
4
5
|
INSERIRE NEL paese (country_name, country_name_eng, country_code) VALUES (‘Deutschland’, ‘Germania’, ‘DEU’);
INSERT INTO paese (country_name, country_name_eng, country_code) VALUES (‘Srbija’, ‘Serbia’, ‘BOOSTER’);
INSERT INTO paese (country_name, country_name_eng, country_code) VALUES (‘Hrvatska’, ‘Croazia’, ‘HRV’);
INSERT INTO paese (country_name, country_name_eng, country_code) VALUES (‘stati Uniti d’America’, ‘stati Uniti d’America’, ‘USA’);
INSERT INTO paese (country_name, country_name_eng, country_code) VALUES (‘Polska’, ‘Polonia’, ‘POL’);
|
i Dati per cinque paesi sono stati inseriti correttamente. Il risultato è mostrato nell’immagine qui sotto. Dal momento che abbiamo avuto 5 INSERT INTO istruzioni TABELLA abbiamo 1″ (1 riga interessata) “messaggio per ciascuno di questi cinque comandi nella sezione” Messaggi:
Si prega di notare che tutti i valori (dopo i VALORI) sono stati ordinati nello stesso modo in cui abbiamo elencato le colonne (dopo INSERT INTO country). Tutti e tre i valori sono testi. La query funzionerebbe anche se non li abbiamo ordinati nel modo giusto perché tutti hanno lo stesso tipo di dati (testo), ma i dati verrebbero memorizzati nelle colonne sbagliate. In tal caso, avremmo un errore semantico.
La prossima cosa che dobbiamo fare è popolare la tabella della città. Lo faremo usando le seguenti dichiarazioni:
1
2
3
4
5
6
|
INSERT INTO città (city_name, lat, long, country_id) VALUES (‘Berlino’, 52.520008, 13.404954, 1);
INSERT INTO città (city_name, lat, long, country_id) VALUES (‘Belgrado’, 44.787197, 20.457273, 2);
INSERT INTO città (city_name, lat, long, country_id) VALUES (‘di Zagabria’, 45.815399, 15.966568, 3);
INSERT INTO città (city_name, lat, long, country_id) VALUES (‘New York’, 40.73061, -73.935242, 4);
INSERT INTO città (city_name, lat, long, country_id) VALUES (‘Los Angeles’, 34.052235, -118.243683, 4);
INSERT INTO città (city_name, lat, long, country_id) VALUES (‘Varsavia’, 52.237049, 21.017532, 5);
|
Dopo l’esecuzione di queste istruzioni, questo è stato il risultato. Come previsto, sono state aggiunte 6 righe. E ancora una volta abbiamo 1 messaggio per ogni inserto nella sezione Messaggi:
In questo caso, avremmo un problema se non abbiamo elencato i valori nello stesso modo, abbiamo elencato le colonne perché i loro tipi di dati non sono gli stessi (sono – in ordine: testo, numero decimale, numero decimale, intero). Questo tipo di errore è chiamato errore di sintassi e il DBMS stesso impedirebbe l’esecuzione della query.
SELEZIONA – Controlla cosa è stato inserito
Ora controlleremo ancora una volta cosa è memorizzato nelle nostre tabelle. Useremo le stesse due istruzioni SELECT che abbiamo usato in precedenza:
1
2
|
SELEZIONARE * DA paese;
SELECT * FROM city;
|
Il risultato è mostrato nella foto qui sotto. Si prega di notare che dopo l’esecuzione di query ora abbiamo Risultati e messaggi sezioni sotto query:
Possiamo concludere che entrambe le tabelle nel nostro database contengono dati e ora siamo pronti a “giocare” con qualcosa di più fresco di questo.
INSERISCI NELLA TABELLA utilizzando Excel
In molti casi, è necessario eseguire più istruzioni SQL in base al set di dati fornito. Questo sta non solo per l’istruzione INSERT INTO TABLE, ma anche per le istruzioni UPDATE e DELETE. Non ha senso digitare manualmente queste istruzioni, ma dovresti piuttosto seguire un approccio più intelligente: preparare formule (o uno script) che automatizzeranno questa parte. In tali situazioni, preferisco usare Excel e formule.
Nota: Personalmente, nel contesto dei database, trovo Excel molto utile quando ho bisogno di creare più istruzioni e quando si presentano risultati e/o si creano dashboard.
diamo un’occhiata a queste formule:
La formula utilizzata per inserire il primo paese (la Germania) :
1
|
=”INSERIRE NEL paese (country_name, country_name_eng, country_code) VALUES (‘” & B2 & “‘, ‘” & C2 & “‘, ‘” & D2 & “‘);”
|
La formula utilizzata per inserire la prima città (Berlino) :
1
|
=”INSERT INTO città (city_name, lat, long, country_id) VALUES (‘” & B2 & “‘, ” & C2 & “, ” & D2 & “, ” & E2 & “);”
|
Sentitevi liberi di utilizzare le seguenti formule per automatizzare le attività. Useremo un approccio simile in seguito quando eseguiremo più istruzioni di aggiornamento ed ELIMINAZIONE (e anche durante la creazione di istruzioni SELECT).
Conclusione
In questo articolo, abbiamo trattato una delle quattro istruzioni SQL più importanti: INSERT INTO TABLE. Lo abbiamo usato per popolare le tabelle create nell’articolo precedente. Questo era un prerequisito per passare alla teoria del database più intelligente e, cosa più importante, restituire i risultati dal nostro database.
Nel prossimo articolo, parleremo della chiave primaria: cos’è e perché è importante nei database.
sommario
Imparare SQL: CREATE DATABASE & CREATE TABLE Operazioni
Imparare SQL: INSERT INTO TABELLA
Imparare SQL: Chiave Primaria
Imparare SQL: Foreign Key
Imparare SQL: SELECT
per Saperne di SQL: INNER JOIN vs LEFT JOIN
Imparare SQL: Script SQL
Imparare SQL: Tipi di relazioni
per Saperne di SQL: Unisciti a più tabelle
Imparare SQL: Funzioni di Aggregazione
Imparare SQL: Come Scrivere un Complesso Query di selezione
Imparare SQL: INFORMATION_SCHEMA Database
Imparare SQL: Tipi di Dati SQL
Imparare SQL: la Teoria degli insiemi
per Saperne di SQL: Le Funzioni Definite dall’utente
Imparare SQL: Stored Procedure Definite dall’Utente
Imparare SQL: Viste SQL
Imparare SQL: SQL Trigger
Imparare SQL: Pratica Query SQL
Imparare SQL: Query SQL esempi
Imparare SQL: Creazione di un report manualmente tramite query SQL
Imparare SQL, SQL Server funzioni di data e ora
Imparare SQL: Creazione di SQL Server di report con funzioni di data e ora
Imparare SQL, SQL Server, Tabelle Pivot
per Saperne di SQL: SQL Server esporta in Excel
Imparare SQL: introduzione a SQL Server cicli
Imparare SQL: i Cursori di SQL Server
Imparare SQL, SQL Migliori Pratiche per la Cancellazione e l’Aggiornamento dei dati
Imparare SQL: Convenzioni di Denominazione
per Saperne di SQL: SQL-Lavori Relativi
Imparare SQL: Non Equi Join in SQL Server
Imparare SQL: SQL Injection
Imparare SQL: SQL Dinamico
- Autore
- Post Recenti
I suoi impegni passati e presenti variano dalla progettazione e codifica di database all’insegnamento, alla consulenza e alla scrittura di database. Inoltre, da non dimenticare, BI, creazione di algoritmi, scacchi, filatelia, 2 cani, 2 gatti, 1 moglie, 1 bambino…
lo trovi su LinkedIn
Visualizza tutti i messaggi di Emil Drkusic
- Imparare SQL: Dynamic SQL – 3 Marzo 2021
- Imparare SQL: SQL Injection – 2 novembre 2020
- per Saperne di SQL: Non-Equi si unisce in SQL Server-settembre 29, 2020