SQLAlchemy ile Python İle Veritabanı Yönetimi, Python programlama dilinin en güçlü veritabanı kütüphanesi olan SQLAlchemy kullanarak veritabanı yönetimini öğrenmek isteyenler için hazırlanmış bir kaynaktır PostgreSQL, MySQL, SQLite ve Oracle gibi farklı veritabanı sistemleriyle çalışabilirsiniz Hemen bugün katılın!
Python dilinin avantajlarından biri, kütüphane ve paket desteğidir. Veritabanı yönetimi işlemleri için de birçok farklı paket ve kütüphane yer almaktadır. Bunlardan biri de SQLAlchemy kütüphanesidir. Bu makalede, Python programlama dili ve SQLAlchemy kütüphanesi kullanılarak veritabanı yönetimi nasıl yapılır konusu ele alınacaktır.
SQLAlchemy, Python ile birlikte kullanılan bir veritabanı işlemi kütüphanesidir. ORM (Object Relational Mapping) yapısını desteklemektedir ve bu nedenle veritabanı model oluşturma açısından oldukça kullanışlıdır. Ayrıca SQL sorgularının oluşturulmasını, veritabanı tablolarının oluşturulmasını ve yönetilmesini kolaylaştırmaktadır.
1. SQLAlchemy Nedir?
SQLAlchemy, bir veri tabanı işlemleri yapmak için kullanılan bir Python kütüphanesidir. Bu kütüphane, veri tabanına bağlanmak, veri ekleme, silme, güncelleme ve veri çekme gibi işlemleri gerçekleştirebilmek için kullanılır. SQL dillerinin farklı işlem özelliklerini destekleyerek, veri tabanı işlemlerinin yapılabilmesini kolaylaştırır.
SQLAlchemy, farklı veri tabanı yönetim sistemleriyle de uyum sağlar. Bu nedenle, programcılar için oldukça tercih edilen bir kütüphane haline gelmiştir. Ayrıca, SQLAlchemy ile veri tabanı modellerinin oluşturulması, değiştirilmesi veya silinmesi gibi işlemler de oldukça kolaydır. Bunun yanında, kütüphanenin özellikle büyük ölçekli veri tabanı işlemlerinde hızlı bir şekilde çalışabilmesi de önemli bir avantaj olarak görülebilir.
2. SQLAlchemy ve Python Kullanarak Veritabanı Oluşturma
Python programlama dili ile birlikte kullanılan SQLAlchemy kütüphanesi, veritabanı oluşturma ve yönetme işlemleri için oldukça kullanışlıdır. SQLAlchemy, veritabanı işlemlerinin yapıldığı bir kütüphanedir. Bu kütüphane ile Python dilinde veritabanı işlemleri yapmak oldukça kolay hale gelmiştir.
Python ile birlikte kullanılan SQLAlchemy kütüphanesi, veritabanı oluşturma ve yönetme işlemleri için ideal bir seçenektir. Veritabanı oluşturma adımları, veritabanı bağlantısı kurulması, veritabanı modelinin tanımlanması ve veritabanı tablolarının oluşturulması gibi adımlar, SQLAlchemy kütüphanesi ile oldukça kolaydır.
Veritabanı Oluşturma Adımları |
---|
1- Veritabanına bağlantı kurma |
2- Veritabanı modelinin tanımlanması |
3- Veritabanı tablolarının oluşturulması |
Veritabanı oluşturma adımları arasında en önemli işlem veritabanına bağlantı kurmaktır. Veritabanına bağlantı kurmak için, SQLAlchemy kütüphanesi birçok seçenek sunar. Bu seçenekler ile MySQL, PostgreSQL, Oracle ve SQLite gibi birçok veritabanı yönetim sistemine bağlanabilirsiniz.
Veritabanı modelinin tanımlanması, SQLAlchemy'nin Object-Relational Mapping (ORM) özelliği sayesinde oldukça kolay ve hızlıdır. Veritabanı tablolarının oluşturulması için ise, basit birkaç kod satırı yazmak yeterlidir. Python kodları ile veritabanı tabloları, SQLAlchemy kütüphanesi sayesinde hızlı bir şekilde oluşturulabilir. Ayrıca, veritabanı modeli için nesne tabanlı model oluşturulurken, kullanacağınız şema da oldukça esnektir.
- Veritabanı oluşturma adımları oldukça basittir.
- SQLAlchemy kütüphanesi ile veritabanı oluşturma işlemi hızlıdır.
- Veritabanı modelinin tanımlanması ve veritabanı tablolarının oluşturulması için sadece birkaç kod satırı yeterlidir.
- Kullanılacak şema oldukça esnektir ve nesne tabanlı model oluşturmak oldukça kolaydır.
2.1 Veritabanı Oluşturma
Python programlama dili ve SQLAlchemy kütüphanesi kullanarak veritabanı yönetimi yapmak oldukça kolay ve verimlidir. Veritabanı oluşturma işlemi, veritabanı tabloları oluşturma, veri ekleme, silme ve güncelleme gibi işlemler Python kodları ile rahatlıkla yapılabilmektedir. Bu nedenle, bu makalede sizlere SQLAlchemy ve Python ile birlikte veritabanı oluşturma işlemlerinin nasıl yapılacağını anlatacağız.
Python kodları ile yeni bir veritabanı oluşturmak oldukça kolaydır. Bu işlemi yapabilmek için öncelikle SQLAlchemy kütüphanesinden yararlanmanız gerekmektedir. Veritabanı oluşturma işlemi genellikle şu adımları içermektedir:
- Veritabanı Bağlantısı Kurma: SQLAlchemy ile veritabanına bağlantı kurma işlemi yapılır.
- Veritabanı Modelinin Tanımlanması: SQLAlchemy ile veritabanı modeli için Python kodları ile nesne tabanlı model oluşturma işlemi yapılır.
- Veritabanı Tablolarının Oluşturulması: SQLAlchemy ile veritabanı tablolarının oluşturulması işlemi gerçekleştirilir.
Her bir adım ayrıntılı bir şekilde ele alınır. Örneğin, veritabanı bağlantısı kurmanın yöntemleri incelenir. Veritabanı modeli için Python kodları kullanılarak nesne tabanlı model oluşturulur. Veritabanı tablolarının oluşturulması işlemi için ise SQLAlchemy kullanılarak Python kodları yazılır.
SQLAlchemy kütüphanesi ile veritabanı oluşturma işlemi oldukça kolay ve hızlıdır. Bu nedenle, özellikle büyük miktarda verinin bulunduğu projelerde kullanılmaktadır. Ayrıca, veritabanı işlemlerinin Python kodları ile yapılabilmesi zaman tasarrufu sağlamaktadır.
2.1.1 Veritabanı Bağlantısı Kurma
SQLAlchemy, veritabanı işlemlerinin gerçekleştirilmesi için kullanılan bir Python kütüphanesidir. Veritabanı bağlantısı kurma, veritabanı modelinin tanımlanması ve verilerin veritabanına eklenmesi işlemleri için SQLAlchemy kullanılabilir.
Veritabanı bağlantısı kurmak için SQLAlchemy kullanarak birden fazla yöntem mevcuttur. Bunlardan bir tanesi, create_engine()
fonksiyonunu kullanmaktır. Bu fonksiyon, bir veritabanı bağlantı URL'si içeren bir parametre ile bir SQLAlchemy engine nesnesi döndürür. Örneğin:
Kodlar |
---|
|
Bu örnek, Postgres veritabanına bağlanmak için create_engine()
fonksiyonunu kullanır. Bağlantı URL'si, kullanıcı adı, şifre, sunucu adı ve veritabanı adını içerir.
Bir diğer yöntem ise Engine
nesnesini manuel olarak oluşturmaktır:
Kodlar |
---|
|
Bu yöntemde, Engine
nesnesi oluşturulur ve daha sonra connect()
yöntemi kullanılarak bir veritabanı bağlantısı yapılır.
- Veritabanı bağlantısının kurulması ile ilgili bu yöntemlerin yanı sıra SQLAlchemy, SQLite, MySQL ve Postgres veritabanları gibi çok çeşitli veritabanı türlerini destekler.
- Veritabanı bağlantısı ile ilgili özelleştirme, veritabanına bağlanırken ek parametrelerin tanımlanması tarafından gerçekleştirilebilir.
SQLAlchemy kullanarak veritabanı bağlantısı kurmak oldukça basit bir işlemdir ve farklı veritabanı türleri için de uygun yöntemler mevcuttur. Bu sayede, veritabanı işlemlerinin daha verimli bir şekilde gerçekleştirilmesi mümkündür.
2.1.2 Veritabanı Modelinin Tanımlanması
SQLAlchemy, Python ile veritabanı sorgulama yapmak için kullanılan bir kütüphanedir. Bu kütüphane ile verilerimizi veritabanına kaydedebilir, güncelleyebilir, silip sorgulayabiliriz. Her veritabanı için farklı bir tablo yapısı ve ilişkileri olacağından SQLAlchemy, veritabanı modelini nesne tabanlı olarak tasarlamamızı sağlar. Bu sayede, veritabanı ile kodlarımız arasında bir yapı kurarak verilerimizi doğru bir şekilde tutabiliriz.
Nesne tabanlı modelleme, veritabanı tablolarımızı Python sınıflarına karşılık gelecek şekilde tanımlamamız demektir. Bu sınıfların her bir özelliği (property) veritabanındaki bir sütun ile eşleşir. Örneğin, bir users
tablosu için bir sınıf tanımladığımızda, sınıfın özellikleri, tablonun sütunları ile aynı isimde olacaktır. Bu sayede, bu özelliklere atayacağımız değerler de veritabanına kaydedilebilecektir.
Veritabanı modeli tanımlamak için SQLAlchemy'ın sağladığı declarative_base()
sınıfını kullanabiliriz. Bu, veritabanı model nesnesinin temel sınıfını oluşturur. Bu sınıf, veritabanı işlemlerimiz için gereken tüm işlevleri içerir. Bu sınıfı oluşturduktan sonra, her bir veritabanı tablosu için ayrı bir sınıf tanımlayabiliriz. Bu sınıflar, declarative_base()
sınıfından miras alacaklardır.
PYTHON KODLARI | AMAÇ |
---|---|
from sqlalchemy.ext.declarative import declarative_base | declarative_base() sınıfını projemize dahil etmek |
Base = declarative_base() | Veritabanı işlemlerimizde kullanacağımız tablolar için temel sınıfı tanımlama |
Temel sınıfı tanımladıktan sonra, her bir veritabanı tablosu için bir sınıf tanımlayabiliriz. Bu sınıfları, Base
sınıfından miras alacaklardır.
PYTHON KODLARI | AMAÇ |
---|---|
from sqlalchemy import Column, Integer, String | Veritabanı sütunları için gerekli bileşenleri projemize dahil etmek |
class User(Base): | User adında yeni bir sınıf tanımlamak |
__tablename__ = 'users' | Sınıfın, users adlı bir veritabanı tablosuna karşılık geleceğini belirtmek |
id = Column(Integer, primary_key=True) | id adında bir sütun oluşturmak ve bunu birincil anahtar olarak belirlemek |
name = Column(String) | name adında bir sütun oluşturmak |
age = Column(Integer) | age adında bir sütun oluşturmak |
Yukarıdaki örnekte, User
adlı bir sınıf tanımlamışız ve bu sınıfı users
adlı bir veritabanı tablosuna karşılık gelecek şekilde belirlemişiz. id
, name
ve age
adında üç sütuna da sahip olan bu veritabanı tablosunu tanımlamak için sınıfımıza üç özellik ekledik. Bu özellikler, veritabanımızdaki üç sütuna karşılık gelecektir. Örneğin, age
sütununa ulaşmak için user.age
şeklinde erişebiliriz.
2.1.3 Veritabanı Tablolarının Oluşturulması
2.1.3 Veritabanı Tablolarının Oluşturulması
SQLAlchemy ile veritabanı tablolarının oluşturulması oldukça basittir. Bunun için ilk olarak önceden oluşturduğumuz veritabanı modelini kullanacağız.
SQLAlchemy'de veritabanı tabloları nesne tabanlı modelle oluşturuluyor. Bu nedenle, oluşturduğumuz veritabanı modelini kullanarak hangi tabloların oluşturulacağını belirleyebiliriz.
Veritabanı tablolarını oluşturmak için öncelikle SQLAlchemy kütüphanesi içindeki declarative_base() fonksiyonunu kullanmalıyız. Daha sonra veritabanı tablosunu oluşturmak için bu fonksiyonu veritabanı modelimizdeki bir sınıftan türeterek yeni bir sınıf oluşturuyoruz.
- Tablo adını class adı olarak kullanarak yeni bir sınıf tanımlanır.
- class sınıf adı(Base): şeklinde veritabanı modeli tanımlanır.
- class içinde __tablename__ özelliği ile veritabanı tablo adı belirlenir.
Aşağıdaki örnek, 'users' adında bir veritabanı tablosu oluşturmak için SQLAlchemy kullanımını göstermektedir:
Örnek Kod: |
---|
from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, StringBase = declarative_base()class Users(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) username = Column(String) password = Column(String) |
Bu örnekte, Users sınıfı SQLAlchemy'de veritabanındaki "users" tablosunu temsil eder. Sınıftaki id, username ve password sütunları, veritabanı tablolarındaki aynı adlara sahip sütunları temsil eder.
Şimdi veritabanı tablolarını oluşturmak için, öncelikle bir engine oluşturmalıyız. Engine, veritabanı işlemlerini yapmamıza olanak tanıyan bir SQLAlchemy bileşenidir. Engine oluşturduktan sonra, modelimizi kullanarak veritabanı tablolarını.metadata.create_all(engine) fonksiyonu ile oluşturabiliriz.
Şu örnek kod, Users sınıfımızdaki veritabanı tablosunu oluşturmak için kullanılabilir:
Örnek Kod: |
---|
from sqlalchemy import create_engineengine = create_engine('postgresql://username:password@host:port/database')from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, StringBase = declarative_base()class Users(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) username = Column(String) password = Column(String)metadata.create_all(engine) |
Bu örnekte engine değişkeni, PostgreSQL veritabanına bağlanmak için kullanıldı. Ayrıca Users sınıfını ve veritabanını metadata.create_all(engine) ile birlikte tanımladık.
Bu şekilde, SQLAlchemy ve veritabanı modellemesi kullanarak veritabanı tablolarını kolayca oluşturabiliriz.
2.2 Veritabanı Tablosuna Veri Ekleme
SQLAlchemy kütüphanesi ile veritabanlarının nitelikleriyle uyumlu hale getirilmiş veri tabanı tablolarına veri eklemek oldukça kolay ve hızlı bir işlemdir. SQLAlchemy'in yapısıyla birlikte veri eklemek, veritabanının sütun ve satırlarını güncellemek, silmek ve sorgulamak basit ve hızlı olabilir.
Veritabanı tablosuna veri ekleme işlemlerinde, SQL tabanlı işlemler gibi birçok veri girme işlemini tek tek yapılmak zorunda değilsiniz. Bunun yerine, SQL tabanlı işlemlerdeki yapılarının aynısının SQLAlchemy için kullanılması yeterli olacaktır. Bu işlem güncelleme ve silme işlemleri için de geçerlidir.
Veri ekleme işlemi için SQLAlchemy ORM yapısı nesne tabanlı bir model takip etmektedir. Nesneler bu yapı içerisinde tablo satırlarını temsil etmektedir. Bu durumda, ilgili tabloya herhangi bir nesne eklenerek veri otomatik olarak eklenir.
Bir veritabanına veri eklemek için SQLAlchemy kütüphanesi, sorguların yapıldığı SQL işlemleri yerine nesne tabanlı modelleri kullanır. Bu modele uygun olarak, ilk adımda eklemek istediğiniz verinin adına uygun bir sınıf oluşturulur ve bu sınıfın bir nesnesi oluşturulur. Bu nesne, nesne tabanlı model girilince veritabanındaki sütunlara eşleştirilir. Bu sınıfın işlevselliği, SQLAlchemy tarafından verilen bir "Base" sınıfının kalıtımıyla sağlanır. Veri eklemek için, bu nesnenin sadece doğrudan eklenebileceği bir model sınıfı mevcuttur.
SQLAlchemy Komutu | Açıklama |
---|---|
session.add() | Yeni bir nesne, veritabanındaki bir satıra eklenir. |
session.add_all() | Yeni bir nesne grubu, veritabanındaki birden fazla satıra eklenir. |
session.flush() | Veri tabanındaki değişiklikler anında yansıtılır. |
session.commit() | Veri tabanındaki değişiklikler kalıcı hale getirilir. |
Veri ekleme işlemi session.add() fonksiyonu kullanılarak yapılır ve eklenen veriler, session.commit() fonksiyonu ile gerçekleştirilir. Bu işlem otomatik olarak veritabanında satıra eşleştirilir. İşlemin tamamlanması için, session.commit() fonksiyonunun çağrılması gereklidir.
Veri tablosuna veri ekleme işlemi SQL bağlantısı gibi bir bağlantı kurmak gerektirmez. Veri tabanına bağlantı kurduktan sonra, bu işlemler SQL tabanlı işlemlerle aynı şekilde gerçekleştirilir. Veritabanına veri eklemek için bir sınıf da kullanılabilir. Bu sayede daha geniş bir veri örnekleme sağlanabilir.
3. Veritabanı Yönetimi İşlemleri
SQLAlchemy kütüphanesi kullanarak veritabanı yönetimi işlemleri oldukça kolay ve düzenli bir şekilde gerçekleştirilebilir. Veritabanında güncelleme işlemleri yapmak için bir veya birden fazla veri kaydının belirlenmesi gerekir. Bunun için de SQLAlchemy'in filtreleme işlevleri kullanılır.
Silme işlemleri yapmak için de yine SQLAlchemy kütüphanesinin sağladığı farklı seçenekler mevcuttur. Örneğin, tek bir veri kaydını silmek için 'delete()' yöntemi kullanılabilir ya da tüm veritabanı tablosunu silmek amacıyla 'drop()' yöntemi tercih edilebilir.
Veritabanında arama yapmak ve verileri listelemek için ise 'select()' metodu kullanılır. Bu metot, belirli kriterler ile sorgulanarak veritabanındaki veri kayıtlarına doğrudan erişim sağlar. Ayrıca, 'execute()' yöntemi de veritabanında yapılan SQL sorgularını direkt olarak çalıştırmak için kullanılabilir.
SQLAlchemy kütüphanesi, veritabanı yönetimi işlemleri konusunda oldukça güçlü ve profesyonel bir çözüm sunar. Bunun yanı sıra, bu kütüphane sayesinde veritabanı işlemleri yaparken, herhangi bir hata veya kayıp veri durumu da ortadan kaldırılmış olur.
3.1 Veri Güncelleme İşlemi
Python programlama dili ve SQLAlchemy kütüphanesi sayesinde veritabanı işlemleri oldukça kolay hale gelmektedir. Verilerin güncellenmesi de bu işlemler arasında yer almaktadır. SQLAlchemy kütüphanesi yazılırken güncelleme işlemleri de göz önünde bulundurulmuştur.
Veri güncelleme işlemi yapmak için SQLAlchemy kütüphanesinin sağladığı update()
metodu kullanılır. Bu yöntem sayesinde veritabanında bulunan veriler kolaylıkla değiştirilebilir. Öncelikle güncellenecek veriler seçilir ve ardından bu veriler üzerinde işlem yapılır.
1. | Güncellenecek veriler seçilir. |
2. | Veriler üzerinde güncelleme işlemi yapılır. |
3. | Değişiklikler kaydedilir ve işlem tamamlanır. |
Bu işlemlerin Python kodları ile gerçekleştirilmesi oldukça basittir. Öncelikle güncelleme yapılacak tablo seçilir ve bu tablo üzerinde işlem yapılır. Örneğin, employees
tablosunda çalışanların maaşları güncellenecekse, öncelikle bu tablo seçilir ve ilgili alanlar seçilir. Ardından update()
metodu kullanılarak güncelleme işlemi yapılır. Kısacası, güncelleme işlemi oldukça basit ve anlaşılırdır.
3.2. Veri Silme İşlemi
Veritabanından gereksiz veya yanlış kayıtların silinmesi işlemi oldukça önemli bir veritabanı yönetimi işlemidir. SQLAlchemy kütüphanesi ile veritabanından veri silmek oldukça basit bir işlemdir.
SQLAlchemy sayesinde veritabanı tablolarından herhangi bir kaydı silmek için yapılması gereken işlem oldukça basittir. İlk olarak silinecek kaydın seçilmesi gerekmektedir, sonra ise seçilen kaydın delete() metodu yardımıyla silinmesi gerekmektedir.
Örnek olarak, veritabanı tablosundan id'si 5 olan kaydı silmek için aşağıdaki Python kodları kullanılabilir:
SQLAlchemy Kodları | Açıklama |
---|---|
from sqlalchemy import create_engine | SQLAlchemy kütüphanesinin gerekli modülleri ve veritabanı modelinin import edilmesi |
engine = create_engine('postgresql://user:password@host:port/database') | Veritabanı bağlantısının kurulması ve oturum açılması |
row_to_delete = session.query(YOUR_TABLE).filter(YOUR_TABLE.id==5).first() | Silinecek kaydın filtrelenerek seçilmesi ve delete() metodu ile silinmesi |
Yukarıdaki örnekte YOUR_MODEL_FILE, veritabanı modelinin yer aldığı dosya adı olarak değiştirilmelidir. YOUR_TABLE, silinecek kaydın yer aldığı veritabanı tablosunun adı olarak değiştirilmelidir. Ayrıca 'postgresql://user:password@host:port/database' veritabanı bağlantı adresi olup, ilgili veritabanının adresi ile değiştirilmelidir.
SQLAlchemy kütüphanesi sayesinde basit bir şekilde veritabanında kayıt silme işlemleri gerçekleştirilebilir. Ancak veritabanı işlemlerinde dikkat edilmesi gereken bazı noktalar vardır. Özellikle, yanlış bir kaydın silinmesi ya da veritabanının bütünlüğünün bozulması gibi istenmeyen durumların yaşanmaması için işlemlerin dikkatle yapılması gerekmektedir.
3.3 Veri Arama ve Listeleme İşlemi
SQLAlchemy kütüphanesi veritabanı yönetimi için oldukça gelişmiş arama ve listeleme işlemleri de içermektedir. Veritabanında yer alan verilerin belirli bir kısmına veya tamamına ulaşmak, filtrelemek ve listelemek için çeşitli yöntemler sunar.
Bir veritabanında yer alan tüm kayıtları listelemek için, Python kodları içerisinde yapmanız gereken tek şey, kayıtları sorgulamaktır. Bu işlem yapılırken tablo ismi ve sorgu kriterleri kullanılır. SQLAlchemy kütüphanesi ile veritabanında arama işlemi yapmak için filter() fonksiyonu kullanılır. Örneğin, filter(<Kriter>) olarak kullanılan bir Python kodu ile belirli bir krite göre kayıt listesine erişmek mümkündür. Bu sayede veritabanındaki istenilen kayıt seti belirlenerek listelenebilir.
Veritabanında listeleme işleminin yanı sıra verilere özgü sorgulamalar da yapmak mümkündür. Örneğin, veritabanında yer alan belli bir sütuna ait değerleri sorgulamak için where() fonksiyonu kullanılır. Bu sayede veritabanı sorguları çok daha spesifik hale getirilebilir ve istenen verilerin sadece belirli koşullarda listelenmesi sağlanabilir.
Veritabanı yönetimi sırasında verilere hızlı ve kolay bir şekilde erişmek önemlidir. SQLAlchemy kütüphanesi ile veri erişimi işlemleri oldukça basit hale getirilir ve bu sayede veritabanı yönetimi işlemleri çok daha kolay bir şekilde tamamlanabilir.