SQLShack

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:

INSERT INTO TABELLA - dati del modello

INSERT INTO TABELLA - dati del modello

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:

INSERIRE NELLA TABELLA-paese

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:

Città

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:

SELECT statements

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:

paesi Excel

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 & “‘);”

città di Excel

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
Emil Drkusic
Emil è un database professionale con 10+ anni di esperienza in tutto ciò che riguarda i database. Nel corso degli anni, ha lavorato nel settore IT e finanziario e ora lavora come libero professionista.
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

Emil Drkusic
Ultimi messaggi di Emil Drkusic (vedi tutti)
  • 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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

More: