SQLAlchemy ORM - क्वेरी का उपयोग करना

SQLAlchemy ORM द्वारा उत्पन्न सभी सेलेक्ट स्टेटमेंट का निर्माण क्वेरी ऑब्जेक्ट द्वारा किया जाता है। यह एक सामान्य इंटरफ़ेस प्रदान करता है, इसलिए क्रमिक कॉल एक नई क्वेरी ऑब्जेक्ट लौटाता है, अतिरिक्त मानदंड और इसके साथ जुड़े विकल्पों के साथ पूर्व की एक प्रति।

क्वेरी ऑब्जेक्ट्स को प्रारंभ में सत्र की विधि () के रूप में निम्नानुसार उत्पन्न किया जाता है -

q = session.query(mapped class)

निम्नलिखित कथन भी ऊपर दिए गए कथन के समतुल्य है -

q = Query(mappedClass, session)

क्वेरी ऑब्जेक्ट में सभी () विधि है जो ऑब्जेक्ट की सूची के रूप में एक परिणाम देता है। यदि हम अपने ग्राहकों की मेज पर इसे निष्पादित करते हैं -

result = session.query(Customers).all()

यह कथन एसक्यूएल अभिव्यक्ति के लिए प्रभावी रूप से समकक्ष है -

SELECT customers.id 
AS customers_id, customers.name 
AS customers_name, customers.address 
AS customers_address, customers.email 
AS customers_email
FROM customers

परिणाम ऑब्जेक्ट को अंतर्निहित ग्राहक तालिका में सभी रिकॉर्ड प्राप्त करने के लिए नीचे दिए गए लूप का उपयोग करके पता लगाया जा सकता है। यहाँ ग्राहक तालिका में सभी रिकॉर्ड प्रदर्शित करने के लिए पूरा कोड है -

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)

पायथन कंसोल नीचे रिकॉर्ड की सूची दिखाता है -

Name: Ravi Kumar Address: Station Road Nanded Email: ravi@gmail.com
Name: Komal Pande Address: Koti, Hyderabad Email: komal@gmail.com
Name: Rajender Nath Address: Sector 40, Gurgaon Email: nath@gmail.com
Name: S.M.Krishna Address: Budhwar Peth, Pune Email: smk@gmail.com

क्वेरी ऑब्जेक्ट में निम्न उपयोगी विधियाँ भी हैं -

अनु क्रमांक। विधि और विवरण
1

add_columns()

यह परिणाम कॉलम की सूची में एक या अधिक कॉलम एक्सप्रेशन देता है।

2

add_entity()

यह परिणामित स्तंभों की सूची में एक मैप की गई इकाई को जोड़ता है।

3

count()

यह पंक्तियों की एक गिनती देता है यह क्वेरी वापस आ जाएगी।

4

delete()

यह एक बल्क डिलीट क्वेरी करता है। डेटाबेस से इस क्वेरी द्वारा मेल की गई पंक्तियाँ हटा दी जाती हैं।

5

distinct()

यह क्वेरी पर एक DISTINCT क्लॉज लागू करता है और नए परिणामी क्वेरी को वापस करता है।

6

filter()

यह SQL अभिव्यक्तियों का उपयोग करते हुए, इस क्वेरी की एक प्रति के लिए दिए गए फ़िल्टरिंग मानदंड को लागू करता है।

7

first()

यह इस क्वेरी का पहला परिणाम देता है या कोई भी अगर परिणाम में कोई पंक्ति नहीं है।

8

get()

यह दिए गए प्राथमिक कुंजी पहचानकर्ता के आधार पर एक उदाहरण देता है जो मालिकाना सत्र के पहचान मानचित्र पर सीधे पहुंच प्रदान करता है।

9

group_by()

यह क्वेरी के लिए एक या एक से अधिक GROUP BY मापदंड पर लागू होता है और नए परिणामी क्वेरी को वापस करता है

10

join()

यह इस क्वेरी ऑब्जेक्ट की कसौटी के खिलाफ SQL JOIN बनाता है और नए परिणामी क्वेरी को लौटाते हुए उदारतापूर्वक लागू होता है।

1 1

one()

यह ठीक एक परिणाम देता है या एक अपवाद बढ़ाता है।

12

order_by()

यह क्वेरी के लिए एक या एक से अधिक आदेश मानदंड पर लागू होता है और नए परिणामी क्वेरी को वापस करता है।

13

update()

यह एक बल्क अपडेट क्वेरी करता है और डेटाबेस में इस क्वेरी द्वारा मेल की गई पंक्तियों को अपडेट करता है।