SQLAlchemy कोर - पंक्तियों का चयन

इस अध्याय में, हम तालिका ऑब्जेक्ट में पंक्तियों के चयन की अवधारणा के बारे में चर्चा करेंगे।

टेबल ऑब्जेक्ट का चयन () विधि हमें सक्षम बनाता है construct SELECT expression

s = students.select()

चयनित वस्तु में अनुवाद होता है SELECT query by str(s) function जैसा कि नीचे दिखाया गया है -

'SELECT students.id, students.name, students.lastname FROM students'

हम इस वस्तु का चयन करने के लिए एक पैरामीटर के रूप में उपयोग कर सकते हैं () कनेक्शन वस्तु का तरीका नीचे दिए गए कोड में दिखाया गया है -

result = conn.execute(s)

जब उपरोक्त कथन निष्पादित किया जाता है, तो बराबर एसक्यूएल अभिव्यक्ति के बाद पायथन शेल गूँजता है -

SELECT students.id, students.name, students.lastname
FROM students

परिणामी चर DBAPI में कर्सर के बराबर है। अब हम रिकॉर्ड का उपयोग करके प्राप्त कर सकते हैंfetchone() method

row = result.fetchone()

तालिका में सभी चयनित पंक्तियों को ए द्वारा मुद्रित किया जा सकता है for loop जैसा कि नीचे दिया गया है -

for row in result:
   print (row)

छात्रों की तालिका से सभी पंक्तियों को मुद्रित करने का पूरा कोड नीचे दिखाया गया है -

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()

students = Table(
   'students', meta, 
   Column('id', Integer, primary_key = True), 
   Column('name', String), 
   Column('lastname', String), 
)

s = students.select()
conn = engine.connect()
result = conn.execute(s)

for row in result:
   print (row)

पायथन शेल में दिखाया गया उत्पादन निम्नानुसार है -

(1, 'Ravi', 'Kapoor')
(2, 'Rajiv', 'Khanna')
(3, 'Komal', 'Bhandari')
(4, 'Abdul', 'Sattar')
(5, 'Priya', 'Rajhans')

जहां चयन क्वेरी का क्लॉज का उपयोग करके लागू किया जा सकता है Select.where()। उदाहरण के लिए, यदि हम id> 2 के साथ पंक्तियों को प्रदर्शित करना चाहते हैं

s = students.select().where(students.c.id>2)
result = conn.execute(s)

for row in result:
   print (row)

यहाँ c attribute is an alias for column। निम्नलिखित उत्पादन शेल पर प्रदर्शित किया जाएगा -

(3, 'Komal', 'Bhandari')
(4, 'Abdul', 'Sattar')
(5, 'Priya', 'Rajhans')

यहां, हमें यह ध्यान रखना होगा कि sqlalchemy.sql मॉड्यूल में चुनिंदा () फ़ंक्शन द्वारा भी ऑब्जेक्ट प्राप्त किया जा सकता है। चयन () फ़ंक्शन को तर्क के रूप में टेबल ऑब्जेक्ट की आवश्यकता होती है।

from sqlalchemy.sql import select
s = select([users])
result = conn.execute(s)