Veri Bilimi Okulu

Python SQL Server Bağlantısı
Python SQL Server Bağlantısı
python_mssql_connection_kapak

Loading

Hepimizin bildiği gibi en yaygın kullanılan veri tabanlarından birisi de Microsoft SQL Server’dır. Bu yazımızda veri bilimi çalışmalarında yaygın olarak kullanılan dillerden birisi olan Python ile MSSQL Server veri tabanına bağlanarak basit bir SELECT sorgusunu çalıştıracağız. Bu yazıyı hazırlarken kullandığım yazılım ve versiyonları şu şekildedir.

  • OS: Windows 10
  • SQL Server: SQL Server 2012
  • Python: Python 3.4

SQL Server’a bağlanabilmemiz için öncelikle pypyodbc paketini pip ile yüklememiz gerekir. Komut satırını çalıştırarak pip install pypyodbc komutunu yazıp çalıştırıyoruz. Komut paketi yükleyecektir.

Bu paketi yükledikten sonra Python geliştirme ortamımızı (IDE) açıp (ben PyCharm kullanıyorum) .py uzantılı bir dosya oluşturuyoruz. Oluşturduğumuz dosyaya aşağıdaki kodları yazıyoruz.

import pypyodbc
connection = pypyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=AdventureWorks2012;UID=sa;PWD=Şifre')

cursor = connection.cursor()
cursor.execute("SELECT * FROM HumanResources.Department")
sonuc = cursor.fetchall()
for i in sonuc:
    print(i)

Beklenen çıktı:

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

sonuc değişkenimiz <class ‘list’> dir. Yani pyton listesi. Yukarıda Microsoft’un sample veri tabanı olan AdventureWorks2012 veri tabanına bağlanarak Department tablosundaki verileri sorguyla aldık ve liste tipindeki sonuc isimli bir nesnenin içine yazdırdık.

Başka bir yazıda görüşmek dileğiyle, veriyle kalın…

0

2 Responses

  1. Merhabalar..

    Aynı kodu Mac’te kullanınca şöyle bir hata veriyor.

    OperationalError: (‘01000’, “[01000] [unixODBC][Driver Manager]Can’t open lib ‘SQL Server’ : file not found”)

Bir yanıt yazın

Password Requirements:

  • At least 8 characters
  • At least 1 lowercase letter
  • At least 1 uppercase letter
  • At least 1 numerical number
  • At least 1 special character