Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym krótkim przewodniku użyjesz notesu Jupyter Notebook w programie Visual Studio Code, aby szybko uzyskać wgląd w dane biznesowe. Używasz sterownika języka Python mssql-python, aby połączyć się z bazą danych SQL i odczytujesz dane, które są następnie formatowane do użycia w wiadomościach e-mail, raportach, prezentacjach itp.
Sterownik mssql-python nie wymaga żadnych zależności zewnętrznych na maszynach z systemem Windows. Sterownik instaluje wszystko, czego potrzebuje w ramach pojedynczej pip instalacji, co pozwala na użycie najnowszej wersji sterownika dla nowych skryptów bez przerywania innych skryptów, których nie masz czasu na uaktualnienie i przetestowanie.
Dokumentacja mssql-python
Wymagania wstępne
Python 3
Jeśli nie masz jeszcze języka Python, zainstaluj środowisko uruchomieniowe języka Python i menedżera pakietów python (PyPI) z python.org.
Wolisz nie używać własnego środowiska? Otwórz jako devcontainer przy użyciu usługi GitHub Codespaces.
Visual Studio Code z następującymi rozszerzeniami:
Rozszerzenie języka Python dla programu Visual Studio Code
Jeśli jeszcze nie masz
uv, zainstalujuv, postępując zgodnie z instrukcjami z https://docs.astral.sh/uv/getting-started/installation/.Baza danych w programie SQL Server, usłudze Azure SQL Database lub bazie danych SQL w usłudze Fabric z przykładowym
AdventureWorks2025schematem i prawidłowymi parametrami połączenia.Zainstaluj jednorazowe wymagania wstępne dotyczące systemu operacyjnego.
Tworzenie bazy danych SQL
Ten szybki start wymaga schematu AdventureWorks2025 Lightweight w Microsoft SQL Server, bazie danych SQL w Fabric lub Azure SQL Database.
Tworzenie projektu i uruchamianie kodu
- Tworzenie nowego projektu
- Dodawanie zależności
- Uruchamianie programu Visual Studio Code
- Aktualizowanie pliku pyproject.toml
- Zapisywanie parametrów połączenia
- Utwórz notatnik Jupyter
- Wyświetlanie wyników w tabeli
- Wyświetlanie wyników na wykresie
Tworzenie nowego projektu
Otwórz wiersz polecenia w katalogu deweloperów. Jeśli go nie masz, utwórz nowy katalog o nazwie
python,scriptsitp. Unikaj folderów w usłudze OneDrive, synchronizacja może zakłócać zarządzanie środowiskiem wirtualnym.Utwórz nowy projekt za pomocą polecenia
uv.uv init jupyter-notebook-qs cd jupyter-notebook-qs
Dodawanie zależności
W tym samym katalogu zainstaluj pakiety mssql-python, python-dotenv, rich, pandas i matplotlib. Następnie dodaj ipykernel i uv jako zależności deweloperskie. Program VS Code wymaga dodania elementów ipykernel i uv, aby móc korzystać z uv wewnątrz komórek notesu przy użyciu poleceń takich jak !uv add mssql_python.
uv add mssql_python dotenv rich pandas matplotlib
uv add --dev ipykernel
uv add --dev uv
Uruchom program Visual Studio Code.
W tym samym katalogu uruchom następujące polecenie.
code .
Aktualizowanie pliku pyproject.toml
Plik pyproject.toml zawiera metadane projektu.
Zaktualizuj opis, aby był bardziej opisowy.
description = "A quick example using the mssql-python driver and Jupyter Notebooks."Zapisz i zamknij plik.
Zapisz łańcuch połączeniowy
.gitignoreOtwórz plik i dodaj wykluczenie dla.envplików. Plik powinien być podobny do tego przykładu. Pamiętaj, aby zapisać i zamknąć go po zakończeniu.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envW bieżącym katalogu utwórz nowy plik o nazwie
.env.W pliku
.envdodaj wpis dla łańcucha połączenia o nazwieSQL_CONNECTION_STRING. Zastąp przykład wartością rzeczywistych parametrów połączenia.SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Wskazówka
Parametry połączenia używane w tym miejscu w dużej mierze zależą od typu bazy danych SQL, z którą nawiązujesz połączenie. Jeśli nawiązujesz połączenie z usługą Azure SQL Database lub bazą danych SQL w sieci szkieletowej, użyj parametrów połączenia ODBC z karty parametry połączenia. W zależności od scenariusza może być konieczne dostosowanie typu uwierzytelniania. Aby uzyskać więcej informacji na temat parametrów połączenia i ich składni, zobacz dokumentację składni parametrów połączenia.
Tworzenie notesu Jupyter
Wybierz Plik, a następnie z listy Nowy plik i Jupyter Notebook. Otwiera się nowy notes.
Wybierz pozycję Plik, a następnie pozycję Zapisz jako... i nadaj nowemu notesowi nazwę.
Dodaj następujące importy w pierwszej komórce.
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 pltUżyj przycisku + Markdown w górnej części notesu, aby dodać nową komórkę markdown.
Dodaj następujący tekst do nowej komórki markdown.
## Define queries for use laterZaznacz znak wyboru na pasku narzędzi komórki lub użyj skrótów klawiaturowych
Ctrl+EnterlubShift+Enterw celu renderowania komórki markdown.Użyj przycisku + Kod w górnej części notesu, aby dodać nową komórkę kodu.
Dodaj następujący kod do nowej komórki kodu.
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; """
Wyświetlanie wyników w tabeli
Użyj przycisku + Markdown w górnej części notesu, aby dodać nową komórkę markdown.
Dodaj następujący tekst do nowej komórki markdown.
## Print orders by customer and display in a tableZaznacz znak wyboru na pasku narzędzi komórki lub użyj skrótów klawiaturowych
Ctrl+EnterlubShift+Enterw celu renderowania komórki markdown.Użyj przycisku + Kod w górnej części notesu, aby dodać nową komórkę kodu.
Dodaj następujący kod do nowej komórki kodu.
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)Wskazówka
Aby korzystać z uwierzytelniania Microsoft Entra w systemie macOS, musisz być zalogowany za pośrednictwem rozszerzenia Azure Repos w programie Visual Studio Code, albo uruchamiając
az loginza pośrednictwem interfejsu wiersza poleceń Azure CLI.Użyj przycisku Uruchom wszystko w górnej części notesu, aby uruchomić notes.
Po wyświetleniu monitu wybierz jądro jupyter-notebook-qs .
Wyświetlanie wyników na wykresie
Przejrzyj dane wyjściowe ostatniej komórki. Powinna zostać wyświetlona tabela z trzema kolumnami i pięcioma wierszami.
Użyj przycisku + Markdown w górnej części notesu, aby dodać nową komórkę markdown.
Dodaj następujący tekst do nowej komórki markdown.
## Display spend by category in a horizontal bar chartZaznacz znak wyboru na pasku narzędzi komórki lub użyj skrótów klawiaturowych
Ctrl+EnterlubShift+Enterw celu renderowania komórki markdown.Użyj przycisku + Kod w górnej części notesu, aby dodać nową komórkę kodu.
Dodaj następujący kod do nowej komórki kodu.
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'])Użyj przycisku Wykonaj komórkę lub
Ctrl+Alt+Enterdo uruchomienia komórki.Przejrzyj wyniki. Uczyń ten notatnik swoim własnym.
Następny krok
Odwiedź repozytorium GitHub sterowników mssql-python, aby uzyskać więcej przykładów, wnieść pomysły lub zgłaszać problemy.