Aracılığıyla paylaş


Hızlı Başlangıç: Jupyter Notebook'tan SQL veritabanına bağlanma

Bu hızlı başlangıçta, iş içgörülerini hızla türetmek için Visual Studio Code'daki Jupyter Notebook'u kullanacaksınız. mssql-python bağlanmak ve ardından e-postalarda, rapor sunularında vb. kullanılmak üzere biçimlendirilmiş verileri okumak için Python sürücüsünü kullanırsınız.

Sürücü, mssql-python Windows makinelerinde dış bağımlılık gerektirmez. Sürücü, ihtiyaç duyduğu her şeyi tek pip bir yüklemeyle yükler ve yükseltmeye ve test etmeye vaktiniz olmayan diğer betikleri bozmadan yeni betikler için sürücünün en son sürümünü kullanmanıza olanak sağlar.

mssql-python belgeleri | mssql-python kaynak kodu | Paket (PyPi) | Visual Studio Code

Önkoşullar


SQL veritabanı oluşturma

Bu hızlı başlangıç için Microsoft SQL Server'da AdventureWorks2025 Basit şeması, Doku'daki SQL veritabanı veya Azure SQL Veritabanı gerekir.

Projeyi oluşturma ve kodu çalıştırma

Yeni proje oluşturma

  1. Geliştirme dizininizde bir komut istemi açın. Bir tane yoksa, python, scripts gibi bir adla yeni bir dizin oluşturun. OneDrive'daki klasörleri kullanmaktan kaçının, çünkü eşitleme sanal ortamınızı yönetmenize engel olabilir.

  2. ile yeni bir uv oluşturun.

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

Bağımlılık ekleme

Aynı dizinde , , mssql-python, python-dotenvrichve pandas paketlerini yükleyinmatplotlib. Ardından ipykernel ve uv öğelerini geliştirme bağımlılıkları olarak ekleyin. VS Code, ipykernel ve uv 'in eklenmesini, not defteri hücrelerinizden uv gibi komutları kullanarak !uv add mssql_python ile etkileşim kurabilmenizi sağlamak için gerektirir.

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

Visual Studio Code'ı başlatma

Aynı dizinde aşağıdaki komutu çalıştırın.

code .

pyproject.toml güncelle

  1. pyproject.toml, projenizin meta verilerini içerir.

  2. Açıklamayı daha açıklayıcı olacak şekilde güncelleştirin.

    description = "A quick example using the mssql-python driver and Jupyter Notebooks."
    
  3. Dosyayı kaydedin ve kapatın.

Bağlantı dizesini kaydetme

  1. .gitignore dosyasını açın ve .env dosyaları için bir dışlama ekleyin. Dosyanız bu örneğe benzer olmalıdır. İşiniz bittiğinde kaydetmeyi ve kapatmayı unutmayın.

    # Python-generated files
    __pycache__/
    *.py[oc]
    build/
    dist/
    wheels/
    *.egg-info
    
    # Virtual environments
    .venv
    
    # Connection strings and secrets
    .env
    
  2. Geçerli dizinde adlı .envyeni bir dosya oluşturun.

  3. dosyasının içine .env bağlantı dizeniz için adlı SQL_CONNECTION_STRINGbir girdi ekleyin. Buradaki örneği gerçek bağlantı dizesi değerinizle değiştirin.

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

    Tavsiye

    Burada kullanılan bağlantı dizesi büyük ölçüde bağlandığınız SQL veritabanının türüne bağlıdır. Eğer bir Azure SQL Veritabanına veya Fabric'teki SQL veritabanına bağlanıyorsanız, bağlantı dizeleri sekmesindeki ODBC bağlantı dizesini kullanın. Senaryonuza bağlı olarak kimlik doğrulama türünü ayarlamanız gerekebilir. Bağlantı dizeleri ve söz dizimi hakkında daha fazla bilgi için bkz. bağlantı dizesi söz dizimi başvurusu.

Jupyter Not Defteri oluşturma

  1. Listeden Dosya'yı, ardından Yeni Dosya ve Jupyter Not Defteri'ni seçin. Yeni bir not defteri açılır.

  2. Dosya'yı ve ardından Farklı Kaydet... öğesini seçin ve yeni not defterinize bir ad verin.

  3. İlk hücreye aşağıdaki kütüphaneleri ekleyin.

    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. Not defterinin üst kısmındaki + Markdown düğmesini kullanarak yeni bir markdown hücresi ekleyin.

  5. Yeni markdown hücresine aşağıdaki metni ekleyin.

    ## Define queries for use later
    
  6. Hücredeki araç çubuğunda onay işaretini seçin veya markdown hücresini işlemek için klavye kısayollarını Ctrl+Enter ya da Shift+Enter kullanın.

  7. Yeni bir kod hücresi eklemek için not defterinin üst kısmındaki + Kod düğmesini kullanın.

  8. Yeni kod hücresine aşağıdaki kodu ekleyin.

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

Sonuçları tabloda görüntüleme

  1. Not defterinin üst kısmındaki + Markdown düğmesini kullanarak yeni bir markdown hücresi ekleyin.

  2. Yeni markdown hücresine aşağıdaki metni ekleyin.

    ## Print orders by customer and display in a table
    
  3. Hücredeki araç çubuğunda onay işaretini seçin veya markdown hücresini işlemek için klavye kısayollarını Ctrl+Enter ya da Shift+Enter kullanın.

  4. Yeni bir kod hücresi eklemek için not defterinin üst kısmındaki + Kod düğmesini kullanın.

  5. Yeni kod hücresine aşağıdaki kodu ekleyin.

    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)
    

    Tavsiye

    macOS'ta Microsoft Entra Kimlik Doğrulaması'nı kullanmak için Visual Studio Code'daki Azure Repos uzantısıyla veya az login aracılığıyla çalıştırarak oturum açmanız gerekir.

  6. Not defterini çalıştırmak için not defterinin üst kısmındaki Tümünü Çalıştır düğmesini kullanın.

  7. İstendiğinde jupyter-notebook-qs çekirdeğini seçin.

Sonuçları grafikte görüntüleme

  1. Son hücrenin çıkışını gözden geçirin. Üç sütunlu ve beş satırlı bir tablo görmeniz gerekir.

  2. Not defterinin üst kısmındaki + Markdown düğmesini kullanarak yeni bir markdown hücresi ekleyin.

  3. Yeni markdown hücresine aşağıdaki metni ekleyin.

    ## Display spend by category in a horizontal bar chart
    
  4. Hücredeki araç çubuğunda onay işaretini seçin veya markdown hücresini işlemek için klavye kısayollarını Ctrl+Enter ya da Shift+Enter kullanın.

  5. Yeni bir kod hücresi eklemek için not defterinin üst kısmındaki + Kod düğmesini kullanın.

  6. Yeni kod hücresine aşağıdaki kodu ekleyin.

    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. Hücreyi Yürüt düğmesini veya Ctrl+Alt+Enter hücreyi çalıştırmak için kullanın.

  8. Sonuçları inceleyin. Bu not defterini kendiniz yapın.

Sonraki adım

Fikirlere mssql-python katkıda bulunmak veya sorunları bildirmek için daha fazla örnek için sürücü GitHub deposunu ziyaret edin.