SQLAlchemy Core - Satır Seçme

Bu bölümde, tablo nesnesinde satır seçme kavramını tartışacağız.

Tablo nesnesinin select () yöntemi, construct SELECT expression.

s = students.select()

Seçilen nesnenin çevirdiği SELECT query by str(s) function aşağıda gösterildiği gibi -

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

Aşağıdaki kodda gösterildiği gibi bağlantı nesnesinin () yöntemini çalıştırmak için bu seçme nesnesini bir parametre olarak kullanabiliriz -

result = conn.execute(s)

Yukarıdaki ifade çalıştırıldığında, Python kabuğu eşdeğer SQL ifadesinin ardından yankılanır -

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

Ortaya çıkan değişken, DBAPI'deki imlecin bir eşdeğeridir. Şimdi kullanarak kayıtları getirebilirizfetchone() method.

row = result.fetchone()

Tablodaki seçilen tüm satırlar, bir for loop aşağıda verildiği gibi -

for row in result:
   print (row)

Öğrenci tablosundaki tüm satırları yazdırmak için kodun tamamı aşağıda gösterilmiştir -

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)

Python kabuğunda gösterilen çıktı aşağıdaki gibidir -

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

SELECT sorgusunun WHERE yan tümcesi kullanılarak uygulanabilir Select.where(). Örneğin, id> 2 olan satırları görüntülemek istiyorsak

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

for row in result:
   print (row)

Buraya c attribute is an alias for column. Aşağıdaki çıktı kabukta görüntülenecektir -

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

Burada, sqlalchemy.sql modülündeki select () fonksiyonu ile seçilen nesnenin de elde edilebileceğini not etmeliyiz. Select () işlevi, argüman olarak tablo nesnesini gerektirir.

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