이 퀵스타트에서는 Visual Studio Code의 Jupyter Notebook을 사용하여 빠르게 비즈니스 인사이트를 도출하세요. Python 드라이버를 mssql-python 사용해 SQL 데이터베이스에 연결하고, 데이터를 읽은 후 이메일, 보고서, 프레젠테이션에 사용할 수 있도록 포맷하세요.
드라이버에는 mssql-python Windows 컴퓨터에 대한 외부 종속성이 필요하지 않습니다. 드라이버는 단일 pip 설치로 필요한 모든 것을 설치하므로 업그레이드 및 테스트할 시간이 없는 다른 스크립트를 중단하지 않고도 새 스크립트에 최신 버전의 드라이버를 사용할 수 있습니다.
mssql-python 설명서 | mssql-python 소스 코드 | 패키지(PyPI) | Visual Studio Code
필수 조건
Python 3.10 이상.
Python이 아직 없는 경우 python.orgPython 런타임 및 pip 패키지 관리자를 설치합니다.
사용자 고유의 환경을 사용하고 싶지 않으신가요? 컨테이너 및 로컬 개발을 따라 재현 가능한 개발 컨테이너나 GitHub Codespaces 환경을 만드세요.
macOS 및 Linux에서 암호 없는 인증을 위한 AZURE CLI(Command-Line 인터페이스)
아직 없는
uv경우 설치 지침을 따르세요.SQL Server, Azure SQL Database 또는 Fabric
AdventureWorks2025의 SQL 데이터베이스에 있는 데이터베이스로, 샘플 스키마와 유효한 연결 문자열이 포함되어 있습니다.
운영 체제 사전 요구 사항 설치
일회성 운영 체제 관련 필수 구성 요소를 설치합니다. Windows 사용자는 이 단계를 건너뛸 수 있습니다. 전체 플랫폼 세부사항은 Install mssql-python을 참조하세요.
SQL 데이터베이스 만들기
다음 플랫폼 중 하나에서 SQL 데이터베이스를 생성하거나 연결하세요:
프로젝트 만들기 및 코드 실행
- 새 프로젝트 만들기
- 종속성 추가
- Visual Studio Code 시작
- pyproject.toml 업데이트
- 연결 문자열 저장
- Jupyter Notebook 만들기
- 테이블에 결과 표시
- 차트에 결과 표시
새 프로젝트 만들기
개발 디렉터리에서 명령 프롬프트를 엽니다. 디렉터리가 없다면, 예를 들어
python또는scripts와 같은 새 디렉터리를 만드세요. OneDrive에 폴더를 설치하지 마세요. 동기화가 가상 환경 관리에 방해가 될 수 있습니다.를 사용하여 새 프로젝트를 만듭니다
uv.uv init jupyter-notebook-qs cd jupyter-notebook-qs
종속성 추가
동일한 디렉터리에 , mssql-python, python-dotenvrich및 pandas 패키지를 설치matplotlib합니다. 그런 다음 개발 종속성을 추가하고 ipykerneluv 추가합니다. VS Code에서 노트북 셀을 실행하려면 ipykernel이(가) 필요하고, 노트북 셀 내에서 패키지를 관리하려면 uv이(가) 필요합니다.
uv add mssql-python python-dotenv rich pandas matplotlib
uv add --dev ipykernel
uv add --dev uv
Visual Studio Code 시작
동일한 디렉터리에서 다음 명령을 실행합니다.
code .
pyproject.toml 업데이트
편집기
pyproject.toml에서 파일을 엽니다. 이 파일은 프로젝트의 메타데이터를 포함하고 있습니다.description값을 업데이트하세요.description = "A quick example using the mssql-python driver and Jupyter Notebooks."파일을 저장 후 닫습니다.
연결 문자열 저장
.gitignore파일을 열고.env파일에 대한 제외를 추가합니다. 귀하의 파일은 다음 예시와 유사해야 합니다.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .env저장하고 닫습니다
.gitignore.현재 디렉터리에서 새 파일을 만듭니다
.env..env파일 내부에서SQL_CONNECTION_STRING이라는 이름의 연결 문자열 항목을 추가합니다. 자리 표시자를 실제 값으로 바꿉다.SQL_CONNECTION_STRING="Server=<server>;Database=<database>;Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"연결 문자열은 연결하는 SQL 데이터베이스 유형에 따라 다릅니다. Azure SQL Database 또는 Fabric의 SQL 데이터베이스의 경우 연결 문자열 탭의 ODBC 연결 문자열을 사용하고, 시나리오에 맞는 인증 유형을 조정하세요. 연결 문자열 문법에 대한 자세한 내용은 mssql-python의 Connection strings를 참조하세요.
팁 (조언)
macOS에서는 Microsoft Entra 인증을 위해
ActiveDirectoryInteractive및ActiveDirectoryDefault가 모두 작동합니다.ActiveDirectoryInteractive는 스크립트를 실행할 때마다 로그인하라는 메시지를 표시합니다. 반복적인 로그인 프롬프트를 피하려면 Azure CLIaz login명령으로 한 번 로그인한 후ActiveDirectoryDefault를 사용하세요.ActiveDirectoryDefault캐시된 자격 증명을 재사용합니다.
Jupyter Notebook 만들기
목록에서 파일, 새 파일 및 Jupyter Notebook을 선택합니다. 새 전자 필기장이 열립니다.
파일을 선택한 다음 다른 이름으로 저장하고 새 전자 필기장 이름을 지정합니다.
첫 번째 셀에 다음 가져오기를 추가합니다.
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 pltNotebook 맨 위에 있는 + Markdown 단추를 사용하여 새 markdown 셀을 추가합니다.
새 markdown 셀에 다음 텍스트를 추가합니다.
## Define queries for use later셀 도구 모음에서 확인 표시를 선택하거나
Ctrl+Enter또는Shift+Enter바로 가기 키를 사용하여 markdown 셀을 렌더링합니다.Notebook 맨 위에 있는 + 코드 단추를 사용하여 새 코드 셀을 추가합니다.
새 코드 셀에 다음 코드를 추가합니다.
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 AS sod INNER JOIN SalesLT.SalesOrderHeader AS soh ON sod.SalesOrderID = soh.SalesOrderID INNER JOIN SalesLT.Product AS p ON sod.ProductID = p.ProductID INNER JOIN SalesLT.ProductCategory AS pc ON p.ProductCategoryID = pc.ProductCategoryID GROUP BY pc.Name ORDER BY Spend; """
테이블에 결과 표시
Notebook 맨 위에 있는 + Markdown 단추를 사용하여 새 markdown 셀을 추가합니다.
새 markdown 셀에 다음 텍스트를 추가합니다.
## Print orders by customer and display in a table셀 도구 모음에서 확인 표시를 선택하거나
Ctrl+Enter또는Shift+Enter바로 가기 키를 사용하여 markdown 셀을 렌더링합니다.Notebook 맨 위에 있는 + 코드 단추를 사용하여 새 코드 셀을 추가합니다.
새 코드 셀에 다음 코드를 추가합니다.
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)Notebook 맨 위에 있는 모두 실행 단추를 사용하여 Notebook을 실행합니다.
메시지가 표시되면 jupyter-notebook-qs 커널을 선택합니다.
차트에 결과 표시
이전 셀의 출력을 검토하세요. 세 개의 열과 5개의 행이 있는 테이블이 표시됩니다.
Notebook 맨 위에 있는 + Markdown 단추를 사용하여 새 markdown 셀을 추가합니다.
새 markdown 셀에 다음 텍스트를 추가합니다.
## Display spend by category in a horizontal bar chart셀 도구 모음에서 확인 표시를 선택하거나
Ctrl+Enter또는Shift+Enter바로 가기 키를 사용하여 markdown 셀을 렌더링합니다.Notebook 맨 위에 있는 + 코드 단추를 사용하여 새 코드 셀을 추가합니다.
새 코드 셀에 다음 코드를 추가합니다.
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'])셀 실행 단추를 사용하거나
Ctrl+Alt+Enter셀을 실행합니다.차트를 검토하세요.