Delen via


Quickstart: Verbinding maken met een SQL-database vanuit een Jupyter Notebook

In deze quickstart gebruikt u Jupyter Notebook in Visual Studio Code om snel bedrijfsinzichten af te leiden. U gebruikt het mssql-python stuurprogramma voor Python om verbinding te maken met uw SQL-database en de gegevens te lezen die vervolgens zijn opgemaakt voor gebruik in e-mailberichten, rapporten, enzovoort.

Het mssql-python stuurprogramma vereist geen externe afhankelijkheden op Windows-computers. Het stuurprogramma installeert alles wat het nodig heeft met één pip installatie, zodat u de nieuwste versie van het stuurprogramma voor nieuwe scripts kunt gebruiken zonder dat andere scripts die u niet hoeft te upgraden en te testen, worden onderbroken.

documentatie | mssql-python-broncode | Pakket (PyPi) | Visual Studio Code

Vereiste voorwaarden


Een SQL-database maken

Voor deze quickstart is het AdventureWorks2025 Lightweight-schema vereist, in Microsoft SQL Server, SQL Database in Fabric of Azure SQL Database.

Het project maken en de code uitvoeren

Een nieuw project maken

  1. Open een opdrachtprompt in uw ontwikkelingsmap. Als u geen map hebt, maakt u een nieuwe map met de naam python, scriptsenzovoort. Vermijd mappen in uw OneDrive, dan kan de synchronisatie het beheer van uw virtuele omgeving verstoren.

  2. Maak een nieuw project met uv.

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

Afhankelijkheden toevoegen

Installeer in dezelfde map de mssql-python, python-dotenv, rich, pandas en matplotlib pakketten. Voeg vervolgens ipykernel en uv toe als dev-afhankelijkheden. VS Code vereist dat ipykernel en uv worden toegevoegd om te kunnen communiceren met uv vanuit uw notebookcellen, met behulp van commando's zoals !uv add mssql_python.

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

Visual Studio Code starten

Voer in dezelfde map de volgende opdracht uit.

code .

Pyproject.toml bijwerken

  1. Het pyproject.toml bevat de metagegevens voor uw project.

  2. Werk de beschrijving bij zodat deze meer beschrijvend is.

    description = "A quick example using the mssql-python driver and Jupyter Notebooks."
    
  3. Sla het bestand op en sluit het.

De verbindingsreeks opslaan

  1. Open het .gitignore bestand en voeg een uitsluiting toe voor .env bestanden. Het bestand moet er ongeveer uitzien als in dit voorbeeld. Zorg ervoor dat u deze opslaat en sluit wanneer u klaar bent.

    # Python-generated files
    __pycache__/
    *.py[oc]
    build/
    dist/
    wheels/
    *.egg-info
    
    # Virtual environments
    .venv
    
    # Connection strings and secrets
    .env
    
  2. Maak in de huidige map een nieuw bestand met de naam .env.

  3. Voeg in het .env bestand een vermelding toe voor de verbindingsreeks met de naam SQL_CONNECTION_STRING. Vervang het voorbeeld hier door de werkelijke verbindingsreekswaarde.

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

    Aanbeveling

    De hier gebruikte verbindingsreeks is grotendeels afhankelijk van het type SQL-database waarmee u verbinding maakt. Als u verbinding maakt met een Azure SQL Database of een SQL-database in Fabric, gebruikt u de ODBC-verbindingsreeks op het tabblad Verbindingsreeksen. Mogelijk moet u het verificatietype aanpassen, afhankelijk van uw scenario. Zie de naslaginformatie over de syntaxis van de verbindingsreeks voor meer informatie over verbindingsreeksen en de bijbehorende syntaxis.

Een Jupyter Notebook maken

  1. Selecteer Bestand en vervolgens Nieuw bestand en Jupyter Notebook in de lijst. Er wordt een nieuw notitieblok geopend.

  2. Selecteer Bestand, vervolgens Opslaan als... en geef uw nieuwe notitieblok een naam.

  3. Voeg de volgende imports toe in de eerste cel.

    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. Gebruik de knop + Markdown boven aan het notitieblok om een nieuwe Markdown-cel toe te voegen.

  5. Voeg de volgende tekst toe aan de nieuwe Markdown-cel.

    ## Define queries for use later
    
  6. Selecteer het vinkje op de celwerkbalk of gebruik de sneltoetsen Ctrl+Enter of Shift+Enter om de Markdown-cel weer te geven.

  7. Gebruik de knop + Code boven aan het notitieblok om een nieuwe codecel toe te voegen.

  8. Voeg de volgende code toe aan de nieuwe codecel.

    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;
    """
    

Resultaten weergeven in een tabel

  1. Gebruik de knop + Markdown boven aan het notitieblok om een nieuwe Markdown-cel toe te voegen.

  2. Voeg de volgende tekst toe aan de nieuwe Markdown-cel.

    ## Print orders by customer and display in a table
    
  3. Selecteer het vinkje op de celwerkbalk of gebruik de sneltoetsen Ctrl+Enter of Shift+Enter om de Markdown-cel weer te geven.

  4. Gebruik de knop + Code boven aan het notitieblok om een nieuwe codecel toe te voegen.

  5. Voeg de volgende code toe aan de nieuwe codecel.

    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)
    

    Aanbeveling

    Als u Microsoft Entra-verificatie in macOS wilt gebruiken, moet u zijn aangemeld via de Azure Repos-extensie in Visual Studio Code of door in te loggen via az login de Azure Command-Line Interface (CLI).

  6. Gebruik de knop Alle opdrachten uitvoeren bovenaan het notebook om alle opdrachten in het notebook uit te voeren.

  7. Selecteer de jupyter-notebook-qs-kernel wanneer hierom wordt gevraagd.

Resultaten weergeven in een grafiek

  1. Controleer de uitvoer van de laatste cel. U ziet nu een tabel met drie kolommen en vijf rijen.

  2. Gebruik de knop + Markdown boven aan het notitieblok om een nieuwe Markdown-cel toe te voegen.

  3. Voeg de volgende tekst toe aan de nieuwe Markdown-cel.

    ## Display spend by category in a horizontal bar chart
    
  4. Selecteer het vinkje op de celwerkbalk of gebruik de sneltoetsen Ctrl+Enter of Shift+Enter om de Markdown-cel weer te geven.

  5. Gebruik de knop + Code boven aan het notitieblok om een nieuwe codecel toe te voegen.

  6. Voeg de volgende code toe aan de nieuwe codecel.

    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. Gebruik de knop Cel uitvoeren of Ctrl+Alt+Enter voer de cel uit.

  8. Bekijk de resultaten. Maak dit notitieblok uw eigen notitieblok.

Volgende stap

Ga naar de GitHub-opslagplaats van het mssql-python stuurprogramma voor meer voorbeelden, om ideeën bij te dragen of problemen te rapporteren.