Con SQL SELECT INTO copi i record se­le­zio­na­ti e li tra­sfe­ri­sci in nuove tabelle o in spazi di ar­chi­via­zio­ne tem­po­ra­nei. Il vantaggio è che i dati vengono trasmessi in modo rapido e af­fi­da­bi­le, con­sen­ten­do di ordinare e ag­gior­na­re i record senza lacune.

Cos’è SQL SELECT INTO?

Il lin­guag­gio di database e di pro­gram­ma­zio­ne SQL offre diversi strumenti per gestire, ana­liz­za­re ed elaborare i database in modo pro­fes­sio­na­le. Ad esempio, combinati con altri operatori, comandi come SQL SELECT per­met­to­no di eseguire svariate azioni. Con SQL SELECT DISTINCT rimuovi ad esempio i duplicati, mentre con l’operatore SQL SELECT INTO copi i record da una tabella a un’altra. SELECT INTO non è uno dei classici comandi SQL, operatori SQL o funzioni, bensì vale come clausola SQL nelle istru­zio­ni SQL.

Consiglio

Impara le nozioni basilari e le funzioni più im­por­tan­ti di SQL, uno dei linguaggi di database e di pro­gram­ma­zio­ne più richiesti in tutti i settori. Con la nostra in­tro­du­zio­ne a SQL con esempi potrai metterti ve­lo­ce­men­te all’opera.

La sintassi di SELECT INTO

La semplice sintassi di SELECT INTO si presenta come segue:

SELECT  *
INTO  nuova_tabella_di_destinazione
FROM tabella_esistente;
sql

Si usano i parametri seguenti:

  • SELECT: il comando SELECT definisce le colonne di una tabella esistente da cui copiare i dati. Puoi indicare i nomi di colonne spe­ci­fi­che oppure usare l’asterisco * per copiare tutti i dati della tabella di origine.
  • INTO: definisce e denomina la nuova tabella di de­sti­na­zio­ne per i record copiati.
  • FROM: seleziona la tabella esistente da cui copiare i record.
  • WHERE: con la clausola opzionale SQL WHERE definisci ulteriori con­di­zio­ni concrete che devono essere sod­di­sfat­te dai dati da copiare dalla tabella di origine.

Ap­pli­ca­zio­ni dell’operatore SELECT INTO

SQL SELECT INTO è adatto prin­ci­pal­men­te per tra­sfe­ri­re dati in una nuova tabella. Tra le altre pos­si­bi­li­tà d’impiego troviamo l’ag­gre­ga­zio­ne, la me­mo­riz­za­zio­ne tem­po­ra­nea o l’estra­zio­ne di record o sot­toin­sie­mi. Eli­mi­nan­do anche i duplicati, ad esempio con DISTINCT, puoi cor­reg­ge­re e limitare i dati.

Tra le ap­pli­ca­zio­ni pratiche per diversi settori troviamo tra l’altro:

  • Copia, estra­zio­ne e tra­smis­sio­ne di dati di clienti, ordini, pazienti o prodotti per nuovi progetti, studi o mi­gra­zio­ne di dati
  • Analisi delle tendenze e di marketing mediante dati aggregati di ordini e vendite
  • Analisi dei dati fi­nan­zia­ri at­tra­ver­so la tra­smis­sio­ne dei dati delle tran­sa­zio­ni
  • Pulizia dei dati dei clienti o dei col­la­bo­ra­to­ri ri­muo­ven­do i duplicati nelle nuove tabelle
  • Raccolta e analisi dei dati nei data warehouse
  • Raccolta di dati per modelli di ap­pren­di­men­to au­to­ma­ti­co
Consiglio

Cerchi un sistema di gestione di database scalabile e sicuro? Affidati all’hosting SQL server di IONOS e scopri le proposte per­so­na­liz­za­te di server e hosting, con standard UE di pro­te­zio­ne dei dati.

Server virtuali (VPS)
Affidati ai VPS e server di IONOS, il tuo partner digitale cer­ti­fi­ca­to ISO
  • 1 Gbps di larghezza di banda e traffico il­li­mi­ta­to
  • Di­spo­ni­bi­li­tà del 99,99% e cer­ti­fi­ca­zio­ne ISO
  • As­si­sten­za 24/7 e con­su­len­te personale

Esempi pratici di SQL SELECT INTO

Per mostrare come funziona l’operatore SQL SELECT INTO te lo pre­sen­tia­mo ser­ven­do­ci di due esempi pratici.

Se­le­zio­na­re e tra­smet­te­re clienti univoci

Vuoi se­le­zio­na­re in una tabella “Ordini” tutti i risultati univoci della colonna “No­me­Clien­te”, esclu­den­do le righe doppie di ordini multipli e tra­sfe­rir­li in una nuova tabella “Or­di­ni­Nuo­vi”? Pro­ce­dia­mo come indicato di seguito:

SELECT DISTINCT NomeCliente
INTO OrdiniNuovi
FROM Ordini;
sql

Tra­smet­te­re le voci dei clienti di una de­ter­mi­na­ta regione

Con la clausola WHERE puoi definire meglio i dati dei clienti ap­pli­can­do con­di­zio­ni ag­giun­ti­ve. Se ad esempio vuoi tra­smet­te­re tutte le voci con i nomi dei clienti residenti in Italia, procedi come segue:

SQL Server:

SELECT NomeCliente, Nazione
INTO OrdiniNuovi
FROM Ordini
WHERE Nazione = 'Italia';
sql

MySQL, Post­gre­SQL, SQlite:

INSERT INTO OrdiniNuovi (NomeCliente, Nazione)
SELECT NomeCliente, Nazione
FROM Ordini
WHERE Nazione = 'Italia';
sql

Al­ter­na­ti­ve a SQL SELECT INTO

Oltre a SELECT INTO esistono altre opzioni per copiare e tra­sfe­ri­re dati tra le tabelle. Ti pre­sen­tia­mo bre­ve­men­te le più im­por­tan­ti:

  • INSERT INTO SELECT: usando SQL INSERT INTO SELECT puoi copiare e tra­sfe­ri­re i record o i risultati se­le­zio­na­ti in com­bi­na­zio­ne con SELECT da una tabella a un’altra già esistente. La dif­fe­ren­za è che con SELECT INTO è possibile creare una nuova tabella per la copia e la tra­smis­sio­ne.
  • CREATE TABLE AS: con l’istru­zio­ne SQL CREATE TABLE puoi creare una nuova tabella. In ab­bi­na­men­to a SQL SELECT e AS è inoltre possibile definire che la nuova tabella si basi sui risultati dell’istru­zio­ne SELECT, con­te­nen­do quindi i dati se­le­zio­na­ti di una tabella esistente.
  • UNION oppure UNION ALL: con l’operatore SQL UNION combini i record delle tabelle e delle colonne se­le­zio­na­te in una nuova tabella di output senza doppioni. In com­bi­na­zio­ne con l’operatore logico ALL definisci che devono essere con­si­de­ra­ti tutti i record di una tabella, duplicati compresi.
  • IMPORT TABLE: l’istru­zio­ne IMPORT TABLE è adatta soltanto per importare record da tabelle e file esterni in una tabella. L’istru­zio­ne è di­spo­ni­bi­le per la selezione so­prat­tut­to nelle versioni di SQL più recenti.
  • LOAD DATA INFILE: l’istru­zio­ne funziona so­stan­zial­men­te come IMPORT TABLE, ma consente usi più fles­si­bi­li, anche se più complessi, e un numero maggiore di formati sup­por­ta­ti per le fonti di dati esterne. Inoltre, è di­spo­ni­bi­le in tutte le versioni di SQL.
Vai al menu prin­ci­pa­le