SQLAlchemy ORM - Sorguyu Kullanma
SQLAlchemy ORM tarafından üretilen tüm SELECT ifadeleri Query nesnesi tarafından oluşturulur. Üretken bir arayüz sağlar, bu nedenle ardışık çağrılar yeni bir Sorgu nesnesi döndürür, eskisinin bir kopyası, ek kriterler ve kendisiyle ilişkili seçeneklerle birlikte.
Sorgu nesneleri başlangıçta Session'ın query () yöntemi kullanılarak aşağıdaki gibi oluşturulur -
q = session.query(mapped class)
Aşağıdaki ifade de yukarıda verilen ifadeye eşdeğerdir -
q = Query(mappedClass, session)
Sorgu nesnesi, nesnelerin listesi biçiminde bir sonuç kümesi döndüren all () yöntemine sahiptir. Bunu müşterilerimiz masasında yürütürsek -
result = session.query(Customers).all()
Bu ifade, aşağıdaki SQL ifadesine etkin bir şekilde eşdeğerdir -
SELECT customers.id
AS customers_id, customers.name
AS customers_name, customers.address
AS customers_address, customers.email
AS customers_email
FROM customers
Sonuç nesnesi, temel müşteri tablosundaki tüm kayıtları elde etmek için aşağıdaki gibi For döngüsü kullanılarak gezilebilir. Müşteriler tablosundaki tüm kayıtları görüntülemek için tam kod:
from sqlalchemy import Column, Integer, String
from sqlalchemy import create_engine
engine = create_engine('sqlite:///sales.db', echo = True)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Customers(Base):
__tablename__ = 'customers'
id = Column(Integer, primary_key = True)
name = Column(String)
address = Column(String)
email = Column(String)
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind = engine)
session = Session()
result = session.query(Customers).all()
for row in result:
print ("Name: ",row.name, "Address:",row.address, "Email:",row.email)
Python konsolu aşağıdaki gibi kayıtların listesini gösterir -
Name: Ravi Kumar Address: Station Road Nanded Email: [email protected]
Name: Komal Pande Address: Koti, Hyderabad Email: [email protected]
Name: Rajender Nath Address: Sector 40, Gurgaon Email: [email protected]
Name: S.M.Krishna Address: Budhwar Peth, Pune Email: [email protected]
Sorgu nesnesi ayrıca aşağıdaki yararlı yöntemlere sahiptir:
Sr.No. | Yöntem ve Açıklama |
---|---|
1 | add_columns() Döndürülecek sonuç sütunları listesine bir veya daha fazla sütun ifadesi ekler. |
2 | add_entity() Döndürülecek sonuç sütunları listesine eşlenmiş bir varlık ekler. |
3 | count() Bu Sorgunun döndüreceği bir satır sayısı döndürür. |
4 | delete() Toplu silme sorgusu gerçekleştirir. Bu sorgu ile eşleşen satırları veritabanından siler. |
5 | distinct() Sorguya bir DISTINCT yan tümcesi uygular ve yeni oluşan Sorguyu döndürür. |
6 | filter() SQL ifadelerini kullanarak, verilen filtreleme kriterini bu Sorgunun bir kopyasına uygular. |
7 | first() Bu Sorgunun ilk sonucunu veya sonuç herhangi bir satır içermiyorsa Hiçbirini döndürür. |
8 | get() Verilen birincil anahtar tanımlayıcıya dayalı olarak, sahip olan Oturumun kimlik haritasına doğrudan erişim sağlayan bir örnek döndürür. |
9 | group_by() Sorguya bir veya daha fazla GROUP BY kriteri uygular ve yeni ortaya çıkan Sorguyu döndürür |
10 | join() Bu Query nesnesinin kriterine karşı bir SQL JOIN oluşturur ve yeni ortaya çıkan Sorguyu döndürerek üretken olarak uygular. |
11 | one() Tam olarak bir sonuç döndürür veya bir istisna oluşturur. |
12 | order_by() Sorguya bir veya daha fazla ORDER BY ölçütü uygular ve yeni oluşan Sorguyu döndürür. |
13 | update() Bir toplu güncelleme sorgusu gerçekleştirir ve veritabanında bu sorgu ile eşleşen satırları günceller. |