Snabbstart: Ansluta till en SQL-databas från en Jupyter Notebook

I denna quickstart använder du Jupyter Notebook i Visual Studio Code för att snabbt härleda affärsinsikter. Använd drivrutinen mssql-python för Python för att ansluta till din SQL-databas, läsa datan och sedan formatera den för användning i e-post, rapporter och presentationer.

Drivrutinen mssql-python kräver inga externa beroenden på Windows-datorer. Drivrutinen installerar allt som behövs med en enda pip installation, så att du kan använda den senaste versionen av drivrutinen för nya skript utan att bryta andra skript som du inte har tid att uppgradera och testa.

mssql-python-dokumentation | mssql-python-källkod | Paket (PyPI) | Visual Studio Code

Förutsättningar

  • Python 3.10 eller senare

  • Om du inte redan har Python installerar du Python-körnings - och pip-pakethanteraren från python.org.

  • Vill du inte använda din egen miljö? Använd Container- och lokal utveckling för att skapa en reproducerbar devcontainer eller en GitHub Codespaces-miljö.

  • Visual Studio Code med följande tillägg:

  • Azure Command-Line Interface (CLI) för lösenordslös autentisering i macOS och Linux.

  • Om du inte redan har uvföljer du installationsanvisningarna.

  • En databas på SQL Server, Azure SQL Database eller SQL Database i Fabric med AdventureWorks2025 exempelschemat och en giltig anslutningssträng.

  • Installera operativsystemsspecifika engångsförutsättningar.

    apk add libtool krb5-libs krb5-dev
    

Skapa en SQL-databas

Skapa eller koppla till en SQL-databas på en av följande plattformar:

Skapa projektet och kör koden

Skapa ett nytt projekt

  1. Öppna en kommandotolk i utvecklingskatalogen. Om du inte har någon, skapa en ny katalog, till exempel python eller scripts. Undvik mappar på din OneDrive, eftersom synkronisering kan störa hanteringen av din virtuella miljö.

  2. Skapa ett nytt projekt med uv.

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

Lägga till beroenden

Installera paketen mssql-python, , python-dotenv, richpandasoch matplotlib i samma katalog. Lägg sedan till ipykernel och uv som utvecklingsberoenden. VS Code kräver ipykernel för att köra notebook-celler och uv för att hantera paket i notebook-cellerna.

uv add mssql-python python-dotenv rich pandas matplotlib
uv add --dev ipykernel
uv add --dev uv

Öppna Visual Studio Code

Kör följande kommando i samma katalog.

code .

Uppdatera pyproject.toml

  1. pyproject.toml innehåller metadata för projektet.

  2. Uppdatera beskrivningen så att den blir mer beskrivande.

    description = "A quick example using the mssql-python driver and Jupyter Notebooks."
    
  3. Spara och stäng filen.

Spara anslutningssträngen

  1. .gitignore Öppna filen och lägg till ett undantag för .env filer. Filen bör likna det här exemplet. Se till att spara och stänga den när du är klar.

    # Python-generated files
    __pycache__/
    *.py[oc]
    build/
    dist/
    wheels/
    *.egg-info
    
    # Virtual environments
    .venv
    
    # Connection strings and secrets
    .env
    
  2. I den aktuella katalogen skapar du en ny fil med namnet .env.

  3. I .env-filen lägger du till en post för din anslutningssträng med namnet SQL_CONNECTION_STRING. Ersätt exemplet här med det faktiska anslutningssträngsvärdet.

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

    Tips/Råd

    Anslutningssträngen som används här beror till stor del på vilken typ av SQL-databas du ansluter till. Om du ansluter till en Azure SQL Database eller en SQL-databas i Fabric använder du ODBC-anslutningssträngen från fliken Anslutningssträngar. Du kan behöva justera autentiseringstypen beroende på ditt scenario. Mer information om anslutningssträngar och deras syntax finns i referens för anslutningssträngssyntax.

Skapa en Jupyter Notebook

  1. Välj Arkiv och sedan Ny fil och Jupyter Notebook i listan. En ny anteckningsbok öppnas.

  2. Välj Arkiv och sedan Spara som... och ge den nya anteckningsboken ett namn.

  3. Lägg till följande importer i den första cellen.

    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. Använd knappen + Markdown överst i anteckningsboken för att lägga till en ny markdown-cell.

  5. Lägg till följande text i den nya markdown-cellen.

    ## Define queries for use later
    
  6. Markera bockmarkeringen i cellverktygsfältet eller använd kortkommandona Ctrl+Enter eller Shift+Enter för att återge markdown-cellen.

  7. Använd knappen + Kod överst i anteckningsboken för att lägga till en ny kodcell.

  8. Lägg till följande kod i den nya kodcellen.

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

Visa resultat i en tabell

  1. Använd knappen + Markdown överst i anteckningsboken för att lägga till en ny markdown-cell.

  2. Lägg till följande text i den nya markdown-cellen.

    ## Print orders by customer and display in a table
    
  3. Markera bockmarkeringen i cellverktygsfältet eller använd kortkommandona Ctrl+Enter eller Shift+Enter för att återge markdown-cellen.

  4. Använd knappen + Kod överst i anteckningsboken för att lägga till en ny kodcell.

  5. Lägg till följande kod i den nya kodcellen.

    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)
    

    Tips/Råd

    På macOS fungerar både ActiveDirectoryInteractive och ActiveDirectoryDefault för Microsoft Entra-autentisering. ActiveDirectoryInteractive uppmanar dig att logga in varje gång du kör skriptet. För att undvika upprepade inloggningspromptar, logga in en gång via Azure CLI genom att köra az login, och använd ActiveDirectoryDefaultsedan , vilket återanvänder den cachade legitimationen.

  6. Använd knappen Kör alla överst i anteckningsboken för att köra anteckningsboken.

  7. Välj jupyter-notebook-qs-kerneln när du uppmanas att göra det.

Visa resultat i ett diagram

  1. Granska utdata från den sista cellen. Du bör se en tabell med tre kolumner och fem rader.

  2. Använd knappen + Markdown överst i anteckningsboken för att lägga till en ny markdown-cell.

  3. Lägg till följande text i den nya markdown-cellen.

    ## Display spend by category in a horizontal bar chart
    
  4. Markera bockmarkeringen i cellverktygsfältet eller använd kortkommandona Ctrl+Enter eller Shift+Enter för att återge markdown-cellen.

  5. Använd knappen + Kod överst i anteckningsboken för att lägga till en ny kodcell.

  6. Lägg till följande kod i den nya kodcellen.

    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. Använd knappen Kör cell eller Ctrl+Alt+Enter för att köra cellen.

  8. Granska resultaten. Gör anteckningsboken till din egen.

Nästa steg

Använd dessa artiklar för att fortsätta bygga:

  • Bygg anslutningssträngar för att konfigurera anslutningar för olika SQL-databastyper och autentiseringsmetoder.
  • pandas-integration för att ladda frågeresultat direkt i DataFrames för analys i anteckningsböcker.
  • Arrow-integration för att arbeta med kolumndata med Apache Arrow för högpresterande analys.