Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten använder du Jupyter Notebook i Visual Studio Code för att snabbt härleda affärsinsikter. Du använder mssql-python drivrutinen för Python för att ansluta till din SQL-databas och läsa de data som sedan formateras för användning i e-postmeddelanden, rapportpresentationer osv.
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
Om du inte redan har Python installerar du Pakethanteraren python runtime och Python Package Index (PyPI) från python.org.
Föredrar du att slippa använda din egen miljö? Öppna som en devcontainer med hjälp av GitHub Codespaces.
Visual Studio Code med följande tillägg:
Python-tillägg för Visual Studio Code
Om du inte redan har
uvinstalleraruvdu genom att följa anvisningarna från https://docs.astral.sh/uv/getting-started/installation/.En databas på SQL Server, Azure SQL Database eller SQL Database i Fabric med
AdventureWorks2022exempelschemat och en giltig anslutningssträng.Installera operativsystemsspecifika engångsförutsättningar.
Skapa en SQL-databas
Den här snabbstarten kräver AdventureWorks2022 Lightweight-schemat på Microsoft SQL Server, SQL Database i Fabric eller Azure SQL Database.
Skapa projektet och kör koden
- Skapa ett nytt projekt
- Lägga till beroenden
- Starta Visual Studio Code
- Uppdatera pyproject.toml
- Spara anslutningssträngen
- Skapa en Jupyter Notebook
- Visa resultat i en tabell
- Visa resultat i ett diagram
Skapa ett nytt projekt
Öppna en kommandotolk i utvecklingskatalogen. Om du inte har en, skapar du en ny katalog med namnet
python,scriptsosv. Undvik mappar på Din OneDrive kan synkroniseringen störa hanteringen av din virtuella miljö.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 att ipykernel och uv har lagts till för att kunna interagera med uv inifrån dina notebook-celler med hjälp av kommandon som !uv add mssql_python.
uv add mssql_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
pyproject.toml innehåller metadata för projektet.
Uppdatera beskrivningen så att den blir mer beskrivande.
description = "A quick example using the mssql-python driver and Jupyter Notebooks."Spara och stäng filen.
Spara anslutningssträngen
.gitignoreÖppna filen och lägg till ett undantag för.envfiler. 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 .envI den aktuella katalogen skapar du en ny fil med namnet
.env.I
.env-filen lägger du till en post för din anslutningssträng med namnetSQL_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
Välj Arkiv och sedan Ny fil och Jupyter Notebook i listan. En ny anteckningsbok öppnas.
Välj Arkiv och sedan Spara som... och ge den nya anteckningsboken ett namn.
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 pltAnvänd knappen + Markdown överst i anteckningsboken för att lägga till en ny markdown-cell.
Lägg till följande text i den nya markdown-cellen.
## Define queries for use laterMarkera bockmarkeringen i cellverktygsfältet eller använd kortkommandona
Ctrl+EnterellerShift+Enterför att återge markdown-cellen.Använd knappen + Kod överst i anteckningsboken för att lägga till en ny kodcell.
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
Använd knappen + Markdown överst i anteckningsboken för att lägga till en ny markdown-cell.
Lägg till följande text i den nya markdown-cellen.
## Print orders by customer and display in a tableMarkera bockmarkeringen i cellverktygsfältet eller använd kortkommandona
Ctrl+EnterellerShift+Enterför att återge markdown-cellen.Använd knappen + Kod överst i anteckningsboken för att lägga till en ny kodcell.
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
Om du vill använda Microsoft Entra-autentisering i macOS måste du vara inloggad via antingen Azure Repos-tillägget i Visual Studio Code eller genom att köra
az loginvia Azure Command-Line Interface (CLI).Använd knappen Kör alla överst i anteckningsboken för att köra anteckningsboken.
Välj jupyter-notebook-qs-kerneln när du uppmanas att göra det.
Visa resultat i ett diagram
Granska utdata från den sista cellen. Du bör se en tabell med tre kolumner och fem rader.
Använd knappen + Markdown överst i anteckningsboken för att lägga till en ny markdown-cell.
Lägg till följande text i den nya markdown-cellen.
## Display spend by category in a horizontal bar chartMarkera bockmarkeringen i cellverktygsfältet eller använd kortkommandona
Ctrl+EnterellerShift+Enterför att återge markdown-cellen.Använd knappen + Kod överst i anteckningsboken för att lägga till en ny kodcell.
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'])Använd knappen Kör cell eller
Ctrl+Alt+Enterför att köra cellen.Granska resultaten. Gör anteckningsboken till din egen.
Nästa steg
mssql-python Besök GitHub-drivrutinslagringsplatsen för drivrutiner för fler exempel för att bidra med idéer eller rapportera problem.