Aracılığıyla paylaş


SQL tablosuna Python veri çerçevesi ekleme

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Bu makalede Python'da Pyodbc paketini kullanarak bir SQL veritabanına pandas veri çerçevesi ekleme işlemi açıklanmaktadır.

Prerequisites

  • Azure Data Studio. Yüklemek için bkz. Azure Data Studio'yu indirme ve yükleme.

  • SQL Server sürümünüz için AdventureWorks örnek veritabanının OLTP sürümünü geri yüklemek için AdventureWorks örnek veritabanlarındaki adımları izleyin.

    HumanResources.Department tablosunu sorgulayarak veritabanının doğru şekilde geri yüklendiğini doğrulayabilirsiniz:

    USE AdventureWorks;
    SELECT * FROM HumanResources.Department;
    

Python paketlerini yükleme

  1. Azure Data Studio'da yeni bir not defteri açın ve Python 3 çekirdeğine bağlanın.

  2. Paketleri Yönet'i seçin.

    Paketleri yönetme

  3. Paketleri Yönet bölmesinde Yeni ekle sekmesini seçin.

  4. Aşağıdaki paketlerin her biri için paket adını girin, Ara'yı ve ardından Yükle'yi seçin.

    • pyodbc
    • pandas

Örnek CSV dosyası oluşturma

Aşağıdaki metni kopyalayın ve adlı department.csvbir dosyaya kaydedin.

DepartmentID,Name,GroupName,
1,Engineering,Research and Development,
2,Tool Design,Research and Development,
3,Sales,Sales and Marketing,
4,Marketing,Sales and Marketing,
5,Purchasing,Inventory Management,
6,Research and Development,Research and Development,
7,Production,Manufacturing,
8,Production Control,Manufacturing,
9,Human Resources,Executive General and Administration,
10,Finance,Executive General and Administration,
11,Information Services,Executive General and Administration,
12,Document Control,Quality Assurance,
13,Quality Assurance,Quality Assurance,
14,Facilities and Maintenance,Executive General and Administration,
15,Shipping and Receiving,Inventory Management,
16,Executive,Executive General and Administration

Yeni veritabanı tablosu oluşturma

  1. AdventureWorks veritabanına bağlanmak için SQL Server'a bağlanma'daki adımları izleyin.

  2. HumanResources.DepartmentTest adlı bir tablo oluşturun. SQL tablosu, veri çerçevesi ekleme işlemi için kullanılır.

    CREATE TABLE [HumanResources].[DepartmentTest](
    [DepartmentID] [smallint] NOT NULL,
    [Name] [dbo].[Name] NOT NULL,
    [GroupName] [dbo].[Name] NOT NULL
    )
    GO
    

CSV dosyasından veri çerçevesi yükleme

Veri çerçevesi oluşturmak, CSV dosyasını yüklemek ve ardından veri çerçevesini pandas adlı yeni SQL tablosuna yüklemek için Python paketini kullanın.

  1. Python 3 çekirdeğine bağlanın.

  2. Aşağıdaki kodu bir kod hücresine yapıştırın ve kodu, , server, database, usernameve CSV dosyasının konumu için passworddoğru değerlerle güncelleştirin.

    import pyodbc
    import pandas as pd
    # insert data from csv file into dataframe.
    # working directory for csv file: type "pwd" in Azure Data Studio or Linux
    # working directory in Windows c:\users\username
    df = pd.read_csv("c:\\user\\username\department.csv")
    # Some other example server values are
    # server = 'localhost\sqlexpress' # for a named instance
    # server = 'myserver,port' # to specify an alternate port
    server = 'yourservername'
    database = 'AdventureWorks'
    username = 'username'
    password = 'yourpassword'
    cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
    cursor = cnxn.cursor()
    # Insert Dataframe into SQL Server:
    for index, row in df.iterrows():
         cursor.execute("INSERT INTO HumanResources.DepartmentTest (DepartmentID,Name,GroupName) values(?,?,?)", row.DepartmentID, row.Name, row.GroupName)
    cnxn.commit()
    cursor.close()
    
  3. Hücreyi çalıştırın.

Veritabanındaki verileri onaylama

SQL çekirdeğine ve AdventureWorks veritabanına bağlanın ve aşağıdaki SQL deyimini çalıştırarak tablonun veri çerçevesindeki verilerle başarıyla yüklendiğini doğrulayın.

SELECT count(*) from HumanResources.DepartmentTest;

Results

(No column name)
16

Sonraki adım