Bagikan melalui


Mulai cepat: Menyambungkan ke database SQL dari Jupyter Notebook

Dalam panduan cepat ini, Anda menggunakan Jupyter Notebook di Visual Studio Code untuk mendapatkan wawasan bisnis dengan cepat. Anda menggunakan mssql-python driver untuk Python untuk menyambungkan ke database SQL Anda dan membaca data yang kemudian diformat untuk digunakan dalam email, melaporkan presentasi, dll.

Driver mssql-python tidak memerlukan dependensi eksternal apa pun pada komputer Windows. Driver menginstal semua yang dibutuhkan dengan satu pip instalasi, memungkinkan Anda menggunakan versi terbaru driver untuk skrip baru tanpa merusak skrip lain yang belum sempat Anda tingkatkan dan uji.

dokumentasi mssql-python | kode sumber mssql-python | Paket (PyPi) | Visual Studio Code

Prasyarat


Membuat basis data SQL

Mulai cepat ini memerlukan skema AdventureWorks2025 Lightweight , di Microsoft SQL Server, database SQL di Fabric atau Azure SQL Database.

Membuat proyek dan menjalankan kode

Membuat proyek baru

  1. Buka jendela perintah di direktori pengembangan Anda. Jika Anda tidak memilikinya, buat direktori baru yang disebut python, , scriptsdll. Hindari folder di OneDrive Anda, sinkronisasi dapat mengganggu pengelolaan lingkungan virtual Anda.

  2. Buat proyek baru dengan uv.

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

Tambah dependensi

Di direktori yang sama, instal paket mssql-python, python-dotenv, rich, pandas, dan matplotlib. Kemudian tambahkan ipykernel dan uv sebagai dependensi dev. Visual Studio Code memerlukan agar ipykernel dan uv ditambahkan untuk dapat berinteraksi dengan uv dalam sel buku catatan Anda menggunakan perintah seperti !uv add mssql_python.

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

Luncurkan Visual Studio Code

Di direktori yang sama, jalankan perintah berikut.

code .

Memperbarui pyproject.toml

  1. pyproject.toml berisi metadata untuk proyek Anda.

  2. Perbarui deskripsi agar lebih deskriptif.

    description = "A quick example using the mssql-python driver and Jupyter Notebooks."
    
  3. Simpan dan tutup file.

Simpan string koneksi

  1. .gitignore Buka file dan tambahkan pengecualian untuk .env file. File Anda harus mirip dengan contoh ini. Pastikan untuk menyimpan dan menutupnya setelah selesai.

    # Python-generated files
    __pycache__/
    *.py[oc]
    build/
    dist/
    wheels/
    *.egg-info
    
    # Virtual environments
    .venv
    
    # Connection strings and secrets
    .env
    
  2. Di direktori saat ini, buat file baru bernama .env.

  3. Di dalam file .env, tambahkan entri untuk string koneksi Anda yang bernama SQL_CONNECTION_STRING. Ganti contoh di sini dengan nilai string koneksi Anda yang sebenarnya.

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

    Petunjuk / Saran

    String koneksi yang digunakan di sini sebagian besar tergantung pada jenis database SQL yang Anda sambungkan. Jika Anda menyambungkan ke Azure SQL Database atau database SQL di Fabric, gunakan string koneksi ODBC dari tab string koneksi. Anda mungkin perlu menyesuaikan jenis autentikasi tergantung pada skenario Anda. Untuk informasi selengkapnya tentang string koneksi dan sintaksnya, lihat referensi sintaks string koneksi.

Membuat Jupyter Notebook

  1. Pilih File, lalu File Baru dan Jupyter Notebook dari daftar. Buku catatan baru terbuka.

  2. Pilih File, lalu Simpan Sebagai... dan beri nama buku catatan baru Anda.

  3. Tambahkan impor berikut di sel pertama.

    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. Gunakan tombol + Markdown di bagian atas buku catatan untuk menambahkan sel markdown baru.

  5. Tambahkan teks berikut ke sel markdown baru.

    ## Define queries for use later
    
  6. Pilih tanda centang di toolbar sel atau gunakan pintasan keyboard Ctrl+Enter atau Shift+Enter untuk merender sel markdown.

  7. Gunakan tombol + Kode di bagian atas buku catatan untuk menambahkan sel kode baru.

  8. Tambahkan kode berikut ke sel kode baru.

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

Menampilkan hasil dalam tabel

  1. Gunakan tombol + Markdown di bagian atas buku catatan untuk menambahkan sel markdown baru.

  2. Tambahkan teks berikut ke sel markdown baru.

    ## Print orders by customer and display in a table
    
  3. Pilih tanda centang di toolbar sel atau gunakan pintasan keyboard Ctrl+Enter atau Shift+Enter untuk merender sel markdown.

  4. Gunakan tombol + Kode di bagian atas buku catatan untuk menambahkan sel kode baru.

  5. Tambahkan kode berikut ke sel kode baru.

    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)
    

    Petunjuk / Saran

    Untuk menggunakan Autentikasi Microsoft Entra di macOS, Anda harus masuk melalui ekstensi Azure Repos di Visual Studio Code, atau dengan menjalankan az login melalui Antarmuka Command-Line Azure (CLI).

  6. Gunakan tombol Jalankan Semua di bagian atas buku catatan untuk menjalankan buku catatan.

  7. Pilih kernel jupyter-notebook-qs saat diminta.

Menampilkan hasil dalam bagan

  1. Tinjau output sel terakhir. Anda akan melihat tabel dengan tiga kolom dan lima baris.

  2. Gunakan tombol + Markdown di bagian atas buku catatan untuk menambahkan sel markdown baru.

  3. Tambahkan teks berikut ke sel markdown baru.

    ## Display spend by category in a horizontal bar chart
    
  4. Pilih tanda centang di toolbar sel atau gunakan pintasan keyboard Ctrl+Enter atau Shift+Enter untuk merender sel markdown.

  5. Gunakan tombol + Kode di bagian atas buku catatan untuk menambahkan sel kode baru.

  6. Tambahkan kode berikut ke sel kode baru.

    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. Gunakan tombol Jalankan Sel atau Ctrl+Alt+Enter untuk menjalankan sel.

  8. Tinjau hasilnya. Jadikan buku catatan ini milik Anda sendiri.

Langkah selanjutnya

mssql-python Kunjungi repositori GitHub driver untuk contoh lebih lanjut, untuk menyumbangkan ide atau melaporkan masalah.