SQLAlchemy Core - Zeilen auswählen

In diesem Kapitel werden wir das Konzept der Auswahl von Zeilen im Tabellenobjekt erläutern.

Die select () -Methode des Tabellenobjekts ermöglicht es uns construct SELECT expression.

s = students.select()

Das ausgewählte Objekt wird übersetzt in SELECT query by str(s) function wie unten gezeigt -

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

Wir können dieses Auswahlobjekt als Parameter verwenden, um die () Methode des Verbindungsobjekts auszuführen, wie im folgenden Code gezeigt -

result = conn.execute(s)

Wenn die obige Anweisung ausgeführt wird, wird die Python-Shell nach dem entsprechenden SQL-Ausdruck wiedergegeben:

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

Die resultierende Variable entspricht dem Cursor in DBAPI. Wir können jetzt Datensätze mit abrufenfetchone() method.

row = result.fetchone()

Alle ausgewählten Zeilen in der Tabelle können mit a gedruckt werden for loop wie unten angegeben -

for row in result:
   print (row)

Der vollständige Code zum Drucken aller Zeilen aus der Schülertabelle ist unten dargestellt.

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)

Die in der Python-Shell angezeigte Ausgabe lautet wie folgt:

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

Die WHERE-Klausel der SELECT-Abfrage kann mithilfe von angewendet werden Select.where(). Zum Beispiel, wenn wir Zeilen mit der ID> 2 anzeigen möchten

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

for row in result:
   print (row)

Hier c attribute is an alias for column. Die folgende Ausgabe wird auf der Shell angezeigt -

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

Hierbei ist zu beachten, dass das Auswahlobjekt auch durch die Funktion select () im Modul sqlalchemy.sql abgerufen werden kann. Die Funktion select () erfordert das Tabellenobjekt als Argument.

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