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)