SQLAlchemy ve MSSQL Kullanım Örnekleri

SQLAlchemy ve MSSQL Kullanım Örnekleri

SQLAlchemy ve MSSQL kullanım örneklerini inceleyin! Bu blog yazısında, MSSQL veritabanlarında SQLAlchemy kullanımına dair detaylı bir rehber sunuyoruz SQLAlchemy'nin ORM özellikleriyle MSSQL veritabanlarına nasıl bağlanabileceğinizi öğrenin Başarılı SQL programlama deneyimi için örnekleri inceleyin!

SQLAlchemy ve MSSQL Kullanım Örnekleri

Herhangi bir yazılım projenin başarısı veritabanına bağlıdır. Veri işlemlerinin güvenliği, doğruluğu, hızı ve erişilebilirliği, projenin temelleri arasında sayılabilir. Bu nedenle, doğru bir veritabanı yönetim sistemiyle birlikte kullanmak üzere veritabanlarına erişmek için işlevsel araçlar sağlamak da önemlidir. Bu makalede, SQLAlchemy kütüphanesi ve MSSQL veritabanı kullanım örneklerini ele alacağız.

SQLAlchemy, Python programlama dilinde geliştirilen nesne yönelimli bir veritabanı araç kütüphanesidir. Bu kütüphane, ORM özellikleriyle veritabanı işlemlerini daha kolay hale getirmeye yardımcı olur. MSSQL (Microsoft SQL Server) ise, Microsoft tarafından geliştirilen ve özellikle büyük işletmelerin tercih ettiği bir veritabanı yönetim sistemidir. Bu makalede, MSSQL veritabanı ile SQLAlchemy kullanım örneklerine yer veriyoruz.


SQLAlchemy Nedir?

SQLAlchemy, Python dilinde kullanılan bir ORM (Object Relational Mapper) kütüphanesidir. Bu kütüphane, veritabanı işlemlerini nesne yönelimli bir şekilde yapabilmenizi sağlar. Yani, veritabanı tablolarına karşılık gelen Python sınıfları oluşturarak, bu sınıflar üzerinden veritabanı işlemlerini yapabilirsiniz. SQLAlchemy'nin amacı, veritabanı işlemlerini daha kolay ve daha hızlı bir şekilde gerçekleştirebilmek için nesne yönelimli programlama prensiplerini kullanarak kod yazmayı kolaylaştırmaktır.

SQLAlchemy, birçok farklı veritabanı yönetim sistemini desteklemektedir ve bu sayede farklı veritabanları arasında kolayca geçiş yapabilirsiniz. Ayrıca, SQLAlchemy'nin sağladığı ORM özellikleri sayesinde, SQL sorgularını yazmak yerine nesne yönelimli bir şekilde veritabanı işlemlerini gerçekleştirebilirsiniz. Bu da kodunuzu daha anlaşılır ve daha kolay yönetilebilir hale getirir.


MSSQL Veritabanı Nedir?

MSSQL (Microsoft SQL Server), Microsoft tarafından geliştirilmiş ve özellikle kurumsal uygulamalarda sıkça kullanılan bir veritabanı yönetim sistemidir. İşletmelerin ihtiyaçlarına uygun bir şekilde tasarlanmıştır ve dünya genelinde en çok tercih edilen veritabanı yönetim sistemlerinden biridir. MSSQL, özellikle büyük veri hacimleriyle çalışan uygulamalar için oldukça hızlı ve güvenilirdir.

Bu veritabanı yönetim sistemi, birçok özelliğiyle dikkat çekmektedir. Yüksek performans, veri güvenliği, yüksek kullanılabilirlik, yedekleme, veri bütünlüğü, vb. gibi özellikleri sayesinde birçok firma tarafından kullanılmaktadır. MSSQL, özellikle büyük işletmelerin tercih ettiği bir veritabanıdır ve kurumsal uygulamaların gereksinimlerini karşılayacak şekilde tasarlanmıştır.


MSSQL ve SQLAlchemy Nasıl Kullanılır?

MSSQL veritabanı ile SQLAlchemy kullanabilmek için öncelikle Microsoft'ın pyodbc kütüphanesinin yüklenmesi gerekmektedir. Bu kütüphane ile MSSQL veritabanına bağlantı kurulabilir. Daha sonra ise SQLAlchemy'nin MSSQL için özel olarak sunduğu bir işleyici kullanılabilir. Bu işleyici, SQLAlchemy'nin MSSQL veritabanı işlemleri yapabilmesine olanak sağlar.

Öncelikle, pyodbc kütüphanesinin yüklenmesi için Microsoft'un resmi web sitesinden indirme işlemi gerçekleştirilebilir. Daha sonra ise yüklediğiniz kütüphane ile MSSQL veritabanına erişebilir ve SQLAlchemy üzerinden veritabanı işlemleri gerçekleştirebilirsiniz.

SQLAlchemy, MSSQL veritabanı için sunduğu özel işleyici ile birlikte, veritabanına bağlanmak için kullanıcı adı, şifre, sunucu adı ve veritabanı adı gibi bilgileri gerektirir. Bu bilgileri, create_engine fonksiyonuyla birlikte MSSQL veritabanına bağlanmak için kullanabilirsiniz. Daha sonra ise connection.execute() fonksiyonu ile SQL sorguları yazabilir ve veritabanındaki verileri işleyebilirsiniz.


Örnek Kod:

SQLAlchemy kullanımı için, öncelikle MSSQL veritabanına erişmek gerekmektedir. Bu işlem için SQLAlchemy'nin sunduğu özel bir işleyici kullanılması gerekmektedir. İşleyici kullanımı için örnek kod aşağıdaki gibidir:

Örnek Kod:
from sqlalchemy import create_engine
engine = create_engine('mssql+pyodbc://localhost/SampleDB?driver=SQL+Server+Native+Client+11.0')
connection = engine.connect()

Bu örnek kod, MSSQL veritabanına bağlanabilmek için gereken engine ve connection nesnelerini oluşturur. Veritabanı ismi ve pyodbc sürücüsü gibi parametreler, kullanım senaryosuna göre değiştirilebilir.


engine


engine = create_engine('mssql+pyodbc://localhost/SampleDB?driver=SQL+Server+Native+Client+11.0')

Bu kod, MSSQL veritabanına bağlanmak için SQLAlchemy kütüphanesinde kullanılan bir işleyicidir. engine değişkeni, bu işleyiciyi kullanarak bir veritabanına bağlanır. Burada 'localhost' ifadesi, veri tabanının sisteminizde yerel olarak çalıştığını gösterir. 'SampleDB' ise MSSQL veritabanındaki veri tabanının adıdır.

Ayrıca, 'driver' parametresi, veritabanına hangi sürücü kullanılarak erişileceğini belirtir. Yukarıdaki kodda Native Client sürücüsü kullanılmaktadır.


connection


connection = engine.connect()

Yukarıdaki kod, SQLAlchemy ile MSSQL veritabanına bağlanmak için kullanılır. create_engine() yöntemiyle MSSQL veritabanına bağlanan bir motor oluşturulur. Bu motor, pyodbc kütüphanesi kullanılarak veritabanına bağlanır. Ve sonrasında connection değişkeni ile de bu bağlantı sağlanır.

MSSQL veritabanına bağlanırken, pyodbc kütüphanesinin doğru bir şekilde yapılandırılmış olması çok önemlidir. Kütüphane, veritabanına bağlanmak için kullanılan sürücüleri sağlar ve kullanıcının bu sürücülerin kurulumunun doğru bir şekilde gerçekleştirilmiş olması gerekmektedir.

MSSQL veritabanından veri okumak veya veri yazmak için, SQLAlchemy'nin ORM özelliklerinden yararlanmak oldukça faydalıdır. Bununla birlikte, SQLAlchemy'nin sunduğu bu özelliklerin doğru bir şekilde kullanılabilmesi için, veritabanı şemasının doğru bir şekilde oluşturulması ve bu şema ile ilişkili sınıfların doğru bir şekilde tanımlanması gerekmektedir.


MSSQL Veritabanı ile Veri Ekleme

SQLAlchemy, MSSQL veritabanına veri eklemek için ORM özelliklerini kullanabilir. Ancak öncesinde, MSSQL veritabanında bir tablo ve bu tablo ile ilişkili bir sınıf oluşturmanız gerekmektedir. Bu işlemi gerçekleştirmek için aşağıdaki adımları takip edebilirsiniz.

  1. Veritabanında bir tablo oluşturun.
  2. Oluşturduğunuz tablo ile ilişkili bir Python sınıfı oluşturun.
  3. Sınıf nesneleri kullanarak veri ekleyin.

Örnek olarak, SampleDB veritabanında Customers adında bir tablo olsun. Customers tablosuna 'Ad', 'Soyad' ve 'Email' alanları ekleyelim. Bu tablo ile ilişkili bir Python sınıfı oluşturmak için aşağıdaki kodu kullanabiliriz:

Sütun İsmi Veri Tipi
Ad text
Soyad text
Email text
from sqlalchemy import create_engine, Column, Integer, Stringfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()class Customers(Base):    __tablename__ = 'Customers'    id = Column(Integer, primary_key=True)    Ad = Column(String)    Soyad = Column(String)    Email = Column(String)    engine = create_engine('mssql+pyodbc://localhost/SampleDB?driver=SQL+Server+Native+Client+11.0')Base.metadata.create_all(engine)

Oluşturduğumuz Customers sınıfını kullanarak veri eklemek içinse şu şekilde bir kod yazabiliriz:

customer = Customers(Ad='John', Soyad='Doe', Email='johndoe@example.com')session = Session(bind=engine)session.add(customer)session.commit()

Bu şekilde, veritabanına 'John Doe' adlı yeni bir müşteri eklemiş olduk.


MSSQL Veritabanı ile Veri Sorgulama

SQLAlchemy'nin ORM özellikleri sayesinde, MSSQL veritabanındaki verileri sorgulamak oldukça kolay ve nesne yönelimli bir şekilde yapılabilir. Verileri sorgulamak için, aşağıdaki örnek kod kullanılabilir:

from sqlalchemy import selectfrom mytable import TabloAdistmt = select([TabloAdi])result = connection.execute(stmt).fetchall()for row in result:    print(row)

Bu örnek kod, MSSQL veritabanındaki "TabloAdi" tablosundaki tüm kayıtları sıralar. "from mytable import TabloAdi" satırı, SQLAlchemy'nin "TabloAdi" sınıfına erişim sağlar. Bu sınıf, "TabloAdi" tablosundaki verileri temsil eder. "stmt" değişkeni, sorgulanacak alanları belirtmek için kullanılır. Bu örnekte, tüm alanlar sorgulanmak istendiği için "select([TabloAdi])" ifadesi kullanılır.

"stmt" değişkeni sonrasında "connection.execute(stmt).fetchall()" methodu kullanılarak sorgu gerçekleştirilir ve "result" değişkenindeki tüm kayıtlar alınır. Sonrasında, for döngüsü ile tüm kayıtlar ekrana yazdırılır. Bu sayede, veriler nesne yönelimli bir şekilde sorgulanabilir ve sonuçlar kolaylıkla elde edilebilir.


from sqlalchemy import select



SQLAlchemy kullanarak Mssql veritabanını programlama dilimiz Python ile kullanabileceğimiz gibi, kolay bir şekilde veri sorgulama işlemlerini de gerçekleştirebiliriz. Örneğin kayıtlarımızı sorgulayabilmek için from sqlalchemy import select komutunu kullanabiliriz. Bu komut sayesinde SQL sorgularını yazmak yerine, nesne yönelimli bir şekilde sorgulama işlemini yapabiliriz. Sorgulama işlemi gerçekleştirirken, öncelikle hangi tablodaki kayıtları sorgulayacağımızı belirleyelim. Daha sonra, bu tablo ile ilişkili bir sınıf oluşturmamız gerekecek. Sınıf nesnelerini kullanarak, kolay bir şekilde kayıtları sorgulayabiliriz.

Örneğimize geri dönecek olursak, MSSQL veritabanındaki TabloAdi tablosundaki tüm kayıtları sıralamak için aşağıdaki komutu kullanabilirsiniz:

  • from sqlalchemy import select
  • from mytable import TabloAdi
  • stmt = select([TabloAdi])
  • result = connection.execute(stmt).fetchall()

Burada, SQL sorgusu yazmak yerine, Python objeleri (TabloAdi) kullanarak kayıtlarımızı listelemiş olduk. Bu sayede veritabanımızda düzenleme yapmak istesek bile SQL bilgisi gerekmeksizin nesne yönelimli olarak işlemlerimizi gerçekleştirebiliriz.


from mytable import TabloAdi


from mytable import TabloAdi

MSSQL veritabanı üzerinde veri işlemleri gerçekleştirirken, veritabanındaki tablolarla ilişkili olarak sınıflar oluşturmak gerekmektedir. Bu işlem, SQLAlchemy ORM özelliklerini kullanarak gerçekleştirilebilir. Örneğin, yukarıda verilen kod satırı TabloAdi adındaki bir tabloyla ilişkili bir sınıfın oluşturulduğunu ifade eder. Bu sınıf oluşturulduktan sonra, sınıf nesneleri kullanarak veritabanındaki kayıtlara erişebilirsiniz. MSSQL veritabanı üzerinde bir sorgulama işlemi gerçekleştirmek için SQL sorguları yerine, bu oluşturulan sınıf nesnelerini kullanarak sorgulama işlemi gerçekleştirilebilir. Bu işlem, ORM özellikleri sayesinde nesne yönelimli olarak gerçekleştirildiği için SQL sorgularına göre daha basittir. Örneğin, yukarıda verilen kod satırı MSSQL veritabanındaki TabloAdi tablosu sorgulanacaksa, TabloAdi sınıfının kullanılması gerekmektedir. Bu sınıfın yapısı ve özellikleri, oluşturulan tablonun yapısına ve özelliklerine göre şekillenir. Ardından, select gibi SQLAlchemy fonksiyonları kullanılarak sorgulama işlemi gerçekleştirilir. Bu sayede, SQL sorgularının karmaşıklığından bağımsız olarak nesne yönelimli bir şekilde sorgulama işlemi gerçekleştirilir.



=
stmt = select([TabloAdi]) kodu, MSSQL veritabanındaki kayıtları sorgulamak veya filtrelemek için kullanılan bir SQLAchemy fonksiyonudur. Burada select() fonksiyonu, sorgulama yapmak istediğimiz tabloyu ve bu tablodan hangi sütunları istediğimizi belirtmek için kullanılır. Bu örnekte, TabloAdi sınıfı tüm sütunlardan verileri seçmek için kullanılmıştır.

Sorgu sonuçlarını almak için, connection.execute(stmt).fetchall() kodu kullanılır. Bu kod, sorgu sonuçlarını MSSQL veritabanından alır ve bir liste olarak döndürür. Sonrasında, for döngüsü ile sorgu sonuçları ekrana basılabilir.


result


result = connection.execute(stmt).fetchall() MSSQL veritabanındaki verileri sorgulama işlemi gerçekleştirildikten sonra, sonuçlar fetchall () yöntemi ile getirilebilir. Bu yöntem, tüm sonuç satırlarını içeren bir liste döndürür. Bu listedeki her öğe, bir SQL sonuç kümesindeki bir satıra karşılık gelir. Sonuçlar üzerinde işlem yaparken Pyton öğeleriyle çalışabilmek için for döngüsü kullanılabilir.

Ayrıca, toplu işlem yapmak istenirse sonuçlar tablo biçiminde gösterilebilir. Bunun için HTML tabloları kullanılabilir. Örneğin, aşağıdaki kod veritabanındaki kayıtları bir HTML tablosu olarak getirmektedir:

Adı Soyadı Yaşı
Ahmet Yılmaz 32
Mehmet Öztürk 28

Bu şekilde sonuçları görsel olarak daha anlaşılır hale getirmek mümkündür. MSSQL veritabanı kullanımı öğrenip SQLAlchemy ile birleştirerek veritabanı işlemlerinin nesne yönelimli bir şekilde daha kolay ve anlaşılır bir şekilde yapılabilmesi mümkündür.


for row in result:

<br>for row in result:

Yukarıdaki kod, MSSQL veritabanında TabloAdi tablosundaki tüm kayıtları sıralar. Bu kod bloğu, döngü üzerinde dönen her bir kaydı içeren bir sonuç seti döndürür. Her bir sonuç seti, tablodaki her bir satırdan bilgileri içerir. Bu işlemi gerçekleştirmek için, bir for döngüsü kullanarak sonuç setindeki her bir satırı almanız gerekiyor.

Bunun için, for döngüsünü kullanarak sonuç setindeki her bir "row" klasörünü alabilirsiniz. Ardından, bu klasöre içeren her bir özellik için bir işlem gerçekleştirebilirsiniz.

Örneğin, bir sorgu sonucundaki her bir kaydı içeren bir HTML tablosu oluşturmak için aşağıdaki kodu kullanabilirsiniz:

{% for row in result %} {% endfor %}
Sütun 1 Sütun 2 Sütun 3
{{ row[0] }} {{ row[1] }} {{ row[2] }}

Bu kod, sonuç setindeki her bir "row" nesnesinin sırayla işlenmesini sağlar. Döngü içinde, her bir "row" nesnesindeki içeriği HTML tablosu içindeki sütunlara göre gösterir ve sonuç olarak bir tablo oluşturur.

Bir sonraki yazınızda, SQLAlchemy ve MSSQL veritabanı ile birleştirilmiş bir uygulamanın nasıl oluşturulacağını öğreneceksiniz.


print(row)

Bu kod MSSQL veritabanındaki TabloAdi tablosundaki tüm kayıtları sıralamaktadır. 'select' fonksiyonu, sorgulanacak tablo ve sütunların listesini alır ve bir sorgu nesnesi döndürür. Bu sorgu nesnesini execute fonksiyonu ile çalıştırabilir ve fetchall fonksiyonu ile tüm sonuçları elde edebilirsiniz.

Ardından, bir döngü ile sonuçları tek tek yazdırabilirsiniz. Bu şekilde, SQL sorguları yazmak yerine daha okunaklı bir şekilde veri sorgulama işlemi gerçekleştirebilirsiniz. SQLAlchemy sayesinde, MSSQL veritabanını kullanarak nesne yönelimli bir yazılım geliştirmek oldukça kolay hale gelmektedir.