Partager via


Démarrage rapide : Se connecter à une base de données SQL à partir d’un notebook Jupyter

Dans ce guide de démarrage rapide, vous utilisez Jupyter Notebook dans Visual Studio Code pour dériver rapidement des insights métier. Vous utilisez le mssql-python pilote pour Python pour vous connecter à votre base de données SQL et lire les données qui sont ensuite mises en forme pour une utilisation dans les e-mails, les présentations de rapports, etc.

Le mssql-python pilote ne nécessite aucune dépendance externe sur les machines Windows. Le pilote installe tout ce dont il a besoin avec une seule pip installation, ce qui vous permet d’utiliser la dernière version du pilote pour les nouveaux scripts sans interrompre d’autres scripts que vous n’avez pas le temps de mettre à niveau et de tester.

Documentation mssql-python | Code source mssql-python | Package (PyPi) | Visual Studio Code

Prerequisites


Créer une base de données SQL

Ce guide de démarrage rapide nécessite le schéma Léger AdventureWorks2025, sur Microsoft SQL Server, une base de données SQL dans Fabric ou une base de données Azure SQL.

Créer le projet et exécuter le code

Créer un projet

  1. Ouvrez une invite de commandes dans votre répertoire de développement. Si vous n’en avez pas, créez un répertoire appelé python, scriptsetc. Évitez les dossiers sur votre OneDrive, la synchronisation peut interférer avec la gestion de votre environnement virtuel.

  2. Créez un projet avec uv.

    uv init jupyter-notebook-qs
    cd jupyter-notebook-qs
    

Ajouter des dépendances

Dans le même répertoire, installez les paquets mssql-python, python-dotenv, rich, pandas, et matplotlib. Ensuite, ajoutez ipykernel et uv comme dépendances de développement. VS Code requiert que ipykernel et uv soient ajoutés pour pouvoir interagir avec uv depuis vos cellules de notebook à l'aide de commandes comme !uv add mssql_python.

uv add mssql_python dotenv rich pandas matplotlib
uv add --dev ipykernel
uv add --dev uv

Lancer Visual Studio Code

Dans le même répertoire, exécutez la commande suivante.

code .

Mettre à jour pyproject.toml

  1. Pyproject.toml contient les métadonnées de votre projet.

  2. Mettez à jour la description pour être plus descriptive.

    description = "A quick example using the mssql-python driver and Jupyter Notebooks."
    
  3. Enregistrez et fermez le fichier.

Enregistrer la chaîne de connexion

  1. Ouvrez le .gitignore fichier et ajoutez une exclusion pour .env les fichiers. Votre fichier doit être similaire à cet exemple. Veillez à l’enregistrer et à le fermer lorsque vous avez terminé.

    # Python-generated files
    __pycache__/
    *.py[oc]
    build/
    dist/
    wheels/
    *.egg-info
    
    # Virtual environments
    .venv
    
    # Connection strings and secrets
    .env
    
  2. Dans le répertoire actif, créez un fichier nommé .env.

  3. Dans le .env fichier, ajoutez une entrée pour votre chaîne de connexion nommée SQL_CONNECTION_STRING. Remplacez l’exemple ici par votre valeur de chaîne de connexion réelle.

    SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"
    

    Conseil / Astuce

    La chaîne de connexion utilisée ici dépend en grande partie du type de base de données SQL à laquelle vous vous connectez. Si vous vous connectez à une base de données Azure SQL ou à une base de données SQL dans Fabric, utilisez la chaîne de connexion ODBC à partir de l’onglet chaînes de connexion. Vous devrez peut-être ajuster le type d’authentification en fonction de votre scénario. Pour plus d’informations sur les chaînes de connexion et leur syntaxe, consultez la référence de la syntaxe des chaînes de connexion.

Créer un notebook Jupyter

  1. Sélectionnez Fichier, puis Nouveau fichier et Jupyter Notebook dans la liste. Un nouveau bloc-notes s’ouvre.

  2. Sélectionnez Fichier, puis Enregistrez sous... et donnez un nom à votre nouveau bloc-notes.

  3. Ajoutez les importations suivantes dans la première cellule.

    from os import getenv
    from mssql_python import connect
    from dotenv import load_dotenv
    from rich.console import Console
    from rich.table import Table
    import pandas as pd
    import matplotlib.pyplot as plt
    
  4. Utilisez le bouton + Markdown en haut du bloc-notes pour ajouter une nouvelle cellule Markdown.

  5. Ajoutez le texte suivant à la nouvelle cellule markdown.

    ## Define queries for use later
    
  6. Sélectionnez la coche dans la barre d’outils de cellule ou utilisez les raccourcis Ctrl+Enter clavier ou Shift+Enter pour afficher la cellule markdown.

  7. Utilisez le bouton + Code en haut du bloc-notes pour ajouter une nouvelle cellule de code.

  8. Ajoutez le code suivant à la nouvelle cellule de code.

    SQL_QUERY_ORDERS_BY_CUSTOMER = """
    SELECT TOP 5
    c.CustomerID,
    c.CompanyName,
    COUNT(soh.SalesOrderID) AS OrderCount
    FROM
    SalesLT.Customer AS c
    LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh
    ON c.CustomerID = soh.CustomerID
    GROUP BY
    c.CustomerID,
    c.CompanyName
    ORDER BY
    OrderCount DESC;
    """
    
    SQL_QUERY_SPEND_BY_CATEGORY = """
    select top 10
    pc.Name as ProductCategory,
    SUM(sod.OrderQty * sod.UnitPrice) as Spend
    from SalesLT.SalesOrderDetail sod
    inner join SalesLt.SalesOrderHeader soh on sod.salesorderid = soh.salesorderid
    inner join SalesLt.Product p on sod.productid = p.productid
    inner join SalesLT.ProductCategory pc on p.ProductCategoryID = pc.ProductCategoryID
    GROUP BY pc.Name
    ORDER BY Spend;
    """
    

Afficher les résultats dans un tableau

  1. Utilisez le bouton + Markdown en haut du bloc-notes pour ajouter une nouvelle cellule Markdown.

  2. Ajoutez le texte suivant à la nouvelle cellule markdown.

    ## Print orders by customer and display in a table
    
  3. Sélectionnez la coche dans la barre d’outils de cellule ou utilisez les raccourcis Ctrl+Enter clavier ou Shift+Enter pour afficher la cellule markdown.

  4. Utilisez le bouton + Code en haut du bloc-notes pour ajouter une nouvelle cellule de code.

  5. Ajoutez le code suivant à la nouvelle cellule de code.

    load_dotenv()
    with connect(getenv("SQL_CONNECTION_STRING")) as conn: # type: ignore
        with conn.cursor() as cursor:
            cursor.execute(SQL_QUERY_ORDERS_BY_CUSTOMER)
            if cursor:
                table = Table(title="Orders by Customer")
                # https://rich.readthedocs.io/en/stable/appendix/colors.html
                table.add_column("Customer ID", style="bright_blue", justify="center")
                table.add_column("Company Name", style="bright_white", justify="left")
                table.add_column("Order Count", style="bold green", justify="right")
    
                records = cursor.fetchall()
    
                for r in records:
                    table.add_row(f"{r.CustomerID}",
                                    f"{r.CompanyName}", f"{r.OrderCount}")
    
                Console().print(table)
    

    Conseil / Astuce

    Pour utiliser l’authentification Microsoft Entra dans macOS, vous devez être connecté via l’extension Azure Repos dans Visual Studio Code ou en exécutant az loginl’interface Azure Command-Line (CLI).

  6. Utilisez le bouton Exécuter tout en haut du bloc-notes pour exécuter le bloc-notes.

  7. Sélectionnez le noyau jupyter-notebook-qs lorsque vous y êtes invité.

Afficher les résultats dans un graphique

  1. Passez en revue le résultat de la dernière cellule. Vous devez voir un tableau avec trois colonnes et cinq lignes.

  2. Utilisez le bouton + Markdown en haut du bloc-notes pour ajouter une nouvelle cellule Markdown.

  3. Ajoutez le texte suivant à la nouvelle cellule markdown.

    ## Display spend by category in a horizontal bar chart
    
  4. Sélectionnez la coche dans la barre d’outils de cellule ou utilisez les raccourcis Ctrl+Enter clavier ou Shift+Enter pour afficher la cellule markdown.

  5. Utilisez le bouton + Code en haut du bloc-notes pour ajouter une nouvelle cellule de code.

  6. Ajoutez le code suivant à la nouvelle cellule de code.

    with connect(getenv("SQL_CONNECTION_STRING")) as conn: # type: ignore
        data = pd.read_sql_query(SQL_QUERY_SPEND_BY_CATEGORY, conn)
        # Set the style - use print(plt.style.available) to see all options
        plt.style.use('seaborn-v0_8-notebook')
        plt.barh(data['ProductCategory'], data['Spend'])
    
  7. Utilisez le bouton Exécuter la cellule ou Ctrl+Alt+Enter pour exécuter la cellule.

  8. Passez en revue les résultats. Faites de ce bloc-notes votre propre bloc-notes.

Étape suivante

Pour obtenir d’autres exemples, consultez le dépôt GitHub du mssql-python pilote pour contribuer à des idées ou signaler des problèmes.