Kom igångKom igång gratis

Filtrera data från en tabell – avancerat

Nu börjar du verkligen få kläm på det här! SQLAlchemy låter dig även använda konjunktioner som and_(), or_() och not_() för att bygga mer komplexa filter. Vi kan till exempel hämta en uppsättning poster för personer i New York som är 21 eller 37 år gamla med följande kod:

select([census]).where(
  and_(census.columns.state == 'New York',
       or_(census.columns.age == 21,
          census.columns.age == 37
         )
      )
  )

Motsvarande SQL-sats ser till exempel ut så här:

SELECT * FROM census WHERE state = 'New York' AND (age = 21 OR age = 37)

Den här övningen är en del av kursen

Introduktion till databaser i Python

Visa kurs

Övningsinstruktioner

  • Importera and_ från modulen sqlalchemy.
  • Välj alla poster från tabellen census.
  • Lägg till en where-sats som filtrerar alla poster där state är 'California' och sex inte är 'M'.
  • Kör stmt via anslutningen och iterera över ResultProxy för att skriva ut kolumnerna age och sex från varje post.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Import and_
from ____ import ____

# Build a query for the census table: stmt
stmt = select(____)

# Append a where clause to select only non-male records from California using and_
stmt = stmt.where(
    # The state of California with a non-male sex
    ____(census.columns.state == ____,
         census.columns.sex != ____
         )
)

# Loop over the ResultProxy printing the age and sex
for result in ____:
    print(____, ____)
Redigera och kör kod