Torna all'elenco degli articoli Articoli
Tempo di lettura: 8 minuti

Come esportare un file CSV da una query T-SQL

Conoscere le query SQL per selezionare i dati dai database consente di ottenere facilmente informazioni. Tuttavia, ci sono molte situazioni in cui è necessario esportare i dati in un'altra piattaforma o applicazione. Il file CSV è una soluzione a questo problema.

Se desiderate acquisire una padronanza completa di SQL, provate il nostro percorso interattivo. SQL from A to Z interattivo. Contiene 7 corsi pratici di SQL che vi porteranno da principianti a utenti avanzati di SQL. Iscrivetevi subito gratuitamente!

In questo articolo scoprirete cos'è un file CSV e perché dovreste usarlo. Imparerete anche 5 metodi per esportare i dati in un file CSV da un database SQL Server. Iniziamo!

Cos'è un file CSV e perché si usa?

Probabilmente vi starete chiedendo perché esportare i dati in un file CSV. Innanzitutto, il file CSV (.csv) è un formato di dati molto popolare, accettato da molte applicazioni come Excel, Calc, vari IDE e server di database. Inoltre, ha una struttura molto semplice, perché le caratteristiche sono valori in righe separate da virgole.

La prima riga contiene spesso l'intestazione della riga. Osservate il seguente file di esempio:

Comando di esportazione SQL in CSV

Come si può vedere, la prima riga contiene l'intestazione con i nomi delle colonne: id, first_name, e last_name. Le righe successive contengono i valori corrispondenti alle intestazioni delle colonne, separati da virgole.

La popolarità e l'ampia accettazione di questo formato consentono lo scambio di dati tra piattaforme e applicazioni diverse. È possibile esportare i dati da un database e importarli in altri software come Excel.

Questa indipendenza permette anche di spostare i dati tra sistemi operativi diversi come Windows e Linux. Molti programmi hanno un'opzione per esportare e importare da/verso file CSV per questo motivo. Le aziende che lavorano con dati su piattaforme diverse possono operare sugli stessi dati e spostarli utilizzando il formato CSV per l'importazione e l'esportazione.

Il formato CSV offre anche un modo semplice per comprendere i dati, perché è leggibile dall'uomo. Il contenuto del file CSV può essere visualizzato come un foglio di calcolo in Excel o Calc.

Esempio di dati da esportare

Supponiamo di avere una tabella prodotto nel database di SQL Server:

idnamecategory
1keyboardelectronics
2brickstoys
3lampelectronics
4wood cartoys
5balltoys

Come sapete, possiamo ottenere tutte le righe da questa tabella utilizzando una semplice query SQL:

SELECT * FROM product;

Quando la eseguiamo, tutti i dati vengono visualizzati nella finestra di output SQL. Ma cosa succede se vogliamo visualizzare gli stessi dati in altre applicazioni come Excel? Continuate a leggere per scoprire diversi metodi per esportare i dati da una tabella a un file CSV.

Metodi per l'esportazione di dati SQL da una tabella a un file CSV

Vediamo ora come esportare i dati di una query su SQL Server in un file CSV. Esistono diversi metodi per farlo.

Metodo 1: Utilizzo di SQL Server Management Studio

Questo metodo sfrutta lo strumento SSMS-GUI, progettato per gestire oggetti e dati in SQL Server.

Innanzitutto, eseguire SSMS. Nel sistema operativo Windows, andare su "Start", espandere "Microsoft SQL Server Tools" e selezionare "Management Studio".

Comando di esportazione SQL in CSV

Nella fase successiva, espandete il nodo Database e fate clic con il tasto destro del mouse sul database che contiene la tabella product (il nostro database è store). Dal menu, scegliere "Attività" e poi "Esporta dati".

Comando di esportazione SQL in CSV

Verrà visualizzata la procedura guidata di importazione ed esportazione:

Comando di esportazione SQL in CSV

Fare clic sul pulsante "Avanti". Dall'elenco "Opzioni dati", scegliere "SQL Server Native Client":

Comando di esportazione SQL in CSV

Compilare altri campi, come il nome del server, il login e la password del server, e scegliere il database che contiene la tabella che si desidera esportare (la nostra tabella product si trova nel database database ):

Comando di esportazione SQL in CSV

Passare alla fase successiva facendo clic sul pulsante "Avanti".

Scegliere ora il formato del file di destinazione. Per un file CSV, scegliere "Flat File". Compilare i campi con il nome del file, la posizione e la pagina del codice. Selezionare le caselle di controllo "Unicode" e "Nomi colonna":

Comando di esportazione SQL in CSV

Nel passaggio successivo, selezionare l'opzione per trasferire tutti i dati dalla tabella o scrivere una query SQL per farlo. La prima opzione si presenta come segue:

Comando di esportazione SQL in CSV

Selezionare la tabella product dall'elenco delle tabelle:

Comando di esportazione SQL in CSV

Nel passaggio successivo, fare clic sul pulsante "Avanti".

Comando di esportazione SQL in CSV

E nell'ultimo passaggio fare clic sul pulsante "Fine":

Comando di esportazione SQL in CSV

Vengono visualizzate le informazioni sui successi e sugli errori:

Comando di esportazione SQL in CSV

Chiudere la finestra della procedura guidata e accedere al file con i dati della tabella prodotti. Lo si può trovare nei cataloghi della cartella utente del sistema operativo Windows.

Metodo 2: Operare su un set di risultati in SSMS - Dati senza nomi di colonne

Un altro metodo che utilizza SSMS per esportare i dati in un file CSV si basa sulle righe di un set di risultati.

Nella finestra Esplora oggetti, espandere il nodo Database e selezionare il database che contiene la nostra tabella prodotto. Quindi, fare clic sul pulsante "Nuova query" per aprire l'editor per la scrittura delle query SQL. Selezionare tutti i dati della tabella product:

SELECT * FROM product;
Comando di esportazione SQL in CSV

Ora, fate clic sul pulsante "Esegui" per eseguire la query. Nel set di risultati vengono visualizzati tutti i dati della tabella.

Nella fase successiva, fare clic con il pulsante destro del mouse sulle righe di dati nel set di risultati e scegliere "Salva risultato con nome" dal menu.

Comando di esportazione SQL in CSV

Nella finestra File, selezionare la cartella di destinazione per il file CSV, inserire il nome del file nel campo Nome file (ad esempio "prodotto-negozio") e fare clic su OK. Questo file contiene i dati, ma senza i nomi delle colonne.

Metodo 3: Operare su un set di risultati in SSMS - Dati con intestazione

Questo metodo è simile a quello precedente. Si basa anch'esso su SSMS e sul set di risultati, ma la differenza sta nelle scelte che si fanno dal menu.

Innanzitutto, fate clic con il pulsante destro del mouse sul set di risultati e scegliete "Seleziona tutto" dal menu.

Comando di esportazione SQL in CSV

Verranno selezionate tutte le righe.

Comando di esportazione SQL in CSV

Fare clic con il pulsante destro del mouse sulle righe selezionate e scegliere "Copia con intestazioni" dal menu. Andare a un file CSV vuoto e incollare semplicemente il contenuto.

Metodo 4: Utilizzo dell'utilità SQLCMD

SQLCMD è uno strumento che consente di utilizzare un terminale in un sistema operativo come Windows per eseguire istruzioni o script SQL. Possiamo usarlo per esportare i dati in un file CSV.

Per prima cosa, aprite cmd nel vostro sistema operativo e scrivete il seguente comando:

sqlcmd -S DESKTOP-INGEKE8\MSSQLSERVER,1433
-Q "select * from store.dbo.product"
–s "," –o "C:\Users\dora\Documents\products_list.csv" -E

Eseguirlo premendo "Invio".

Lasciate che vi spieghi più in dettaglio.

La prima parola è il nome dello strumento, sqlcmd. Poi ci sono le opzioni (lettere specifiche, ciascuna preceduta da un trattino) necessarie per esportare i dati da una query SQL a un file CSV.

La prima opzione è -S, seguita dal nome del server, una barra rovesciata, il nome dell'istanza di SQL Server, una virgola e il numero di porta per la connessione. Nel mio caso, SQL Server si trova su una macchina chiamata DESKTOP-INGEKE8, e l'istanza è MSSQLSERVER. Si noti che la porta predefinita è 1433.

La seconda opzione è -Q. Questa opzione è seguita da un'istruzione SELECT per ottenere i dati dalla tabella. L'istruzione SELECT deve essere racchiusa tra virgolette. Nel nostro esempio, negozio è il database, dbo è lo schema predefinito e product è il nome della tabella.

La terza opzione è -s seguita da una virgola tra virgolette. In questo modo si specifica la virgola come separatore tra le colonne del file CSV.

La quarta opzione è -o per specificare il percorso e il nome del file di output. Racchiudere il percorso e il nome del file tra virgolette.

L'ultima opzione è -E. Questo indica che si tratta di una connessione affidabile al server del database.

Comando di esportazione SQL in CSV

Il risultato è un file CSV (products_list.csv) che contiene i dati della tabella product del database store nel percorso specificato.

bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv -S DESKTOP-INGEKE8\SQLEXPRESS -c -t"," -T
bcp "SELECT * from product WITH (NOLOCK)" queryout c:\product-store.csv -c -T

Metodo 5: Utilizzo dello strumento BCP

L'uso dello strumento BCP è simile al metodo precedente. BCP è un programma a riga di comando che copia i dati da/verso un'istanza SQL e da/verso un file di dati, utilizzando un formato di file specificato. È possibile utilizzare questo strumento nel terminale del proprio sistema operativo.

Aprire cmd nel sistema operativo Windows ed eseguire quanto segue:

bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv
-S DESKTOP-INGEKE8\MSSQLSERVER,1433 -c -t"," -T

La prima parola è bcp, seguita dai nomi del database, dello schema e della tabella, separati dal punto. Quindi, il comando out specifica il percorso del file dei risultati. Nel mio caso, è C:\Users\dora\Desktop\product-data.csv.

Segue l'opzione -S, seguita dal nome del server, una barra rovesciata, il nome dell'istanza di SQL Server, una virgola e il numero di porta per la connessione. Nel mio caso, SQL Server si trova su una macchina chiamata DESKTOP-INGEKE8, e l'istanza è MSSQLSERVER. Si noti che la porta predefinita è 1433.

L'opzione -t (in minuscolo) definisce il separatore racchiuso tra virgolette. In questo caso, il separatore è la virgola.

L'opzione -T (in maiuscolo) indica l'autenticazione Trusted Windows.

Quando si esegue questa operazione, viene visualizzato un messaggio simile a quello riportato di seguito, che indica lo stato della copia dei dati:

Comando di esportazione SQL in CSV

Esportiamo una tabella SQL in un file CSV!

In questo articolo abbiamo appreso cos'è un file CSV, come si costruisce questo formato e perché viene utilizzato nelle applicazioni o nelle piattaforme. Sono stati inoltre illustrati diversi metodi per esportare i dati da una tabella di un database Microsoft SQL Server a un file CSV.

Potreste essere interessati a leggere come esportare in un file CSV da un database PostgreSQL nell'articolo "Come importare CSV in PostgreSQL usando PgAdmin". Oppure, per saperne di più su SQL Server, potete seguire i corsi sulla nostra piattaforma LearnSQL.it.