26th May 2022 9 minutes de lecture Comment exporter un fichier CSV à partir d'une requête T-SQL Dorota Wdzięczna sql apprendre sql csv Table des matières Qu'est-ce qu'un fichier CSV, et pourquoi est-il utilisé ? Exemple de données à exporter Les méthodes d'exportation des données SQL d'une table vers un fichier CSV Méthode 1 : Utiliser le SQL Server Management Studio Méthode 2 : Exploitation d'un ensemble de résultats dans SSMS - Données sans noms de colonnes Méthode 3 : Exploitation d'un ensemble de résultats dans SSMS - Données avec en-tête Méthode 4 : Utiliser l'utilitaire SQLCMD Méthode 5 : Utilisation de l'outil BCP Exportons une table SQL vers un fichier CSV ! Connaître les requêtes SQL pour sélectionner des données dans les bases de données vous permet d'obtenir facilement des informations. Cependant, il existe de nombreuses situations dans lesquelles nous devons exporter des données vers une autre plateforme ou application. Le fichier CSV est une solution à ce problème. Si vous souhaitez maîtriser le SQL complet, essayez notre piste interactive Le SQL de A à Z interactive. Elle contient 7 cours pratiques sur SQL qui vous feront passer du statut de débutant à celui d'utilisateur avancé de SQL. Inscrivez-vous dès maintenant et gratuitement ! Dans cet article, vous découvrirez ce qu'est un fichier CSV et pourquoi vous souhaitez l'utiliser. Vous apprendrez également 5 méthodes pour exporter des données vers un fichier CSV à partir d'une base de données SQL Server. C'est parti ! Qu'est-ce qu'un fichier CSV, et pourquoi est-il utilisé ? Vous vous demandez probablement pourquoi vous souhaitez exporter des données vers un fichier CSV. Tout d'abord, le fichier CSV (.csv) est un format de données très populaire, accepté par de nombreuses applications comme Excel, Calc, divers IDE et des serveurs de bases de données. De plus, il a une structure très simple, car les éléments caractéristiques sont des valeurs en lignes séparées par des virgules. La première ligne contient très souvent l'en-tête de ligne. Regardez l'exemple de fichier suivant : Comme vous pouvez le constater, la première ligne contient l'en-tête avec les noms de colonnes : id, first_name, et last_name. Les lignes qui suivent contiennent les valeurs correspondant aux en-têtes de colonne, séparées par des virgules. La popularité et la large acceptation de ce format permettent l'échange de données entre différentes plateformes et applications. Il est possible d'exporter des données d'une base de données et de les importer dans un autre logiciel comme Excel. Cette indépendance permet également de déplacer des données entre différents systèmes d'exploitation comme Windows et Linux. C'est pour cette raison que de nombreux programmes ont une option d'exportation et d'importation de/vers des fichiers CSV. Les entreprises qui travaillent avec des données sur différentes plates-formes peuvent opérer sur les mêmes données et déplacer des données en utilisant le format CSV pour importer et exporter. Le format CSV permet également de comprendre facilement les données car il est lisible par l'homme. Le contenu du fichier CSV peut être vu comme une feuille de calcul dans Excel ou Calc. Exemple de données à exporter Disons que nous avons ce produit à une table dans la base de données du serveur SQL : idnamecategory 1keyboardelectronics 2brickstoys 3lampelectronics 4wood cartoys 5balltoys Comme vous le savez, nous pouvons obtenir toutes les lignes de cette table en utilisant une simple requête SQL : SELECT * FROM product; Lorsque nous l'exécutons, toutes les données s'affichent dans la fenêtre de sortie SQL. Mais que faire si nous voulons voir les mêmes données dans d'autres applications comme Excel ? Lisez la suite pour découvrir plusieurs méthodes d'exportation des données d'une table vers un fichier CSV. Les méthodes d'exportation des données SQL d'une table vers un fichier CSV Nous allons maintenant voir comment exporter les données d'une requête contre un serveur SQL vers un fichier CSV. Il existe plusieurs méthodes différentes pour le faire. Méthode 1 : Utiliser le SQL Server Management Studio Cette méthode utilise l'outil SSMS-GUI conçu pour gérer les objets et les données dans SQL Server. Tout d'abord, exécutez SSMS. Dans le système d'exploitation Windows, allez à "Start", développez "Microsoft SQL Server Tools", et sélectionnez "Management Studio". Dans l'étape suivante, développez le nœud Base de données et cliquez avec le bouton droit de la souris sur votre base de données qui contient la table product (notre base de données est store). Dans le menu, choisissez "Tâches" puis "Exporter les données". L'assistant d'importation et d'exportation s'affiche : Cliquez sur le bouton "Suivant". Dans la liste "Data options", choisissez "SQL Server Native Client" : Remplissez d'autres champs comme le nom du serveur, le login et le mot de passe du serveur, et choisissez la base de données stockant la table que vous souhaitez exporter (notre table product se trouve dans la base de données database store) : Passez à l'étape suivante en cliquant sur le bouton "Next". Maintenant, choisissez le format du fichier de destination. Pour un fichier CSV, choisissez "Flat File". Remplissez les champs avec le nom du fichier, l'emplacement, et la page de code. Cochez les cases "Unicode" et "Column names" : Dans l'étape suivante, sélectionnez l'option de transférer toutes les données de la table ou écrivez une requête SQL pour le faire. Le choix de la première option ressemble à ceci : Sélectionnez la table product dans la liste des tables : Dans l'étape suivante, cliquez sur le bouton "Suivant". Et cliquez sur le bouton "Terminer" à la dernière étape : Vous voyez les informations sur les succès et les erreurs : Fermez la fenêtre de l'assistant et allez dans le fichier contenant les données du produit de la table. Vous pouvez le trouver dans les catalogues du dossier utilisateur de l'OS Windows. Méthode 2 : Exploitation d'un ensemble de résultats dans SSMS - Données sans noms de colonnes Une autre méthode utilisant SSMS pour exporter des données vers un fichier CSV est basée sur les lignes d'un ensemble de résultats. Dans la fenêtre de l'explorateur d'objets, développez le nœud Base de données et sélectionnez la base de données qui contient notre table produit. Ensuite, cliquez sur le bouton "New Query" pour ouvrir l'éditeur permettant d'écrire des requêtes SQL. Sélectionnez toutes les données de la table product: SELECT * FROM product; Maintenant, cliquez sur le bouton "Execute" pour exécuter la requête. Dans l'ensemble de résultats, vous voyez toutes les données de la table. Dans l'étape suivante, cliquez avec le bouton droit de la souris sur les lignes de données dans l'ensemble de résultats et choisissez "Enregistrer le résultat sous" dans le menu. Dans la fenêtre Fichier, sélectionnez le dossier de destination de votre fichier CSV, saisissez le nom du fichier dans le champ Nom du fichier - "product-store" par exemple - et cliquez sur OK. Ce fichier contient vos données, mais sans les noms des colonnes. Méthode 3 : Exploitation d'un ensemble de résultats dans SSMS - Données avec en-tête Cette méthode est similaire à la méthode précédente. Elle est également basée sur SSMS et le jeu de résultats, mais les différences résident dans les choix que vous faites à partir du menu. Tout d'abord, cliquez avec le bouton droit de la souris sur l'ensemble de résultats et choisissez "Select All" dans le menu. Cela permet de sélectionner toutes les lignes. Cliquez avec le bouton droit de la souris sur les lignes sélectionnées et choisissez "Copier avec les en-têtes" dans le menu. Allez dans un fichier CSV vide et collez simplement le contenu. Méthode 4 : Utiliser l'utilitaire SQLCMD SQLCMD est un outil qui vous permet d'utiliser un terminal dans un système d'exploitation comme Windows pour exécuter des instructions ou des scripts SQL. Nous pouvons l'utiliser pour exporter des données vers un fichier CSV. Tout d'abord, ouvrez cmd dans votre système d'exploitation et écrivez la commande suivante : sqlcmd -S DESKTOP-INGEKE8\MSSQLSERVER,1433 -Q "select * from store.dbo.product" –s "," –o "C:\Users\dora\Documents\products_list.csv" -E Exécutez-la en appuyant sur "Entrée". Laissez-moi vous expliquer plus en détail. Le premier mot est le nom de l'outil, sqlcmd. Viennent ensuite les options (lettres spécifiques, chacune précédée d'un tiret) nécessaires pour exporter les données d'une requête SQL vers un fichier CSV. La première option est -S, suivie du nom du serveur, d'une barre oblique inversée, du nom de l'instance de SQL Server, d'une virgule et du numéro de port pour la connexion. Dans mon cas, SQL Server est sur une machine appelée DESKTOP-INGEKE8, et l'instance est MSSQLSERVER. Notez que le port par défaut est 1433. La deuxième option est -Q. Elle est suivie d'une instruction SELECT pour obtenir les données de la table. Mettez l'instruction SELECT entre guillemets. Dans notre exemple, stocker est la base de données, dbo est le schéma par défaut, et product est le nom de la table. La troisième option est -s suivie d'une virgule entre guillemets. Ceci spécifie la virgule comme séparateur entre les colonnes du fichier CSV. La quatrième option est -o pour spécifier le chemin et le nom du fichier de sortie. Mettez le chemin et le nom du fichier entre guillemets. Et la dernière option est -E. Cela indique qu'il s'agit d'une connexion de confiance au serveur de la base de données. Le résultat est un fichier CSV (products_list.csv) contenant les données de la table product de la base de données store au chemin que vous avez spécifié. 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 Méthode 5 : Utilisation de l'outil BCP L'utilisation de l'outil BCP est similaire à la méthode précédente. BCP est un programme de ligne de commande qui copie les données depuis/vers une instance SQL et depuis/vers un fichier de données, en utilisant un format de fichier spécifié. Vous pouvez utiliser cet outil dans le terminal de votre système d'exploitation. Ouvrez cmd dans le système d'exploitation Windows et exécutez ce qui suit : bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv -S DESKTOP-INGEKE8\MSSQLSERVER,1433 -c -t"," -T Le premier mot est bcp, suivi des noms de la base de données, du schéma et de la table, séparés par un point. Ensuite, la commande out spécifie le chemin du fichier résultat. Dans mon cas, c'est C:\Users\dora\Desktop\product-data.csv. Ensuite, l'option -S, suivie du nom du serveur, d'une barre oblique inverse, du nom de l'instance de SQL Server, d'une virgule et du numéro de port pour la connexion. Dans mon cas, SQL Server est sur une machine appelée DESKTOP-INGEKE8, et l'instance est MSSQLSERVER. Notez que le port par défaut est 1433. L'option -t (en minuscules) définit le séparateur entre guillemets. Ici, le séparateur est la virgule. L'option -T (en majuscules) correspond à l'authentification Trusted Windows. Lorsque vous exécutez cette opération, vous voyez quelque chose comme l'image ci-dessous pour vous informer de l'état de la copie de vos données : Exportons une table SQL vers un fichier CSV ! Dans cet article, vous avez appris ce qu'est un fichier CSV, comment ce format est construit, et pourquoi il est utilisé dans des applications ou des plateformes. Vous avez également vu plusieurs méthodes pour exporter les données d'une table dans une base de données Microsoft SQL Server vers un fichier CSV. Vous serez peut-être intéressé par l'article "Comment importer des CSV vers PostgreSQL à l'aide de PgAdmin", qui explique comment exporter vers un fichier CSV à partir d'une base de données PostgreSQL . Ou bien apprenez-en plus sur SQL Server avec les cours sur notre plateforme LearnSQL.fr. Tags: sql apprendre sql csv