Filtrowanie rekordów bazy danych za pomocą klauzuli WHERE w SQL
Wiesz już, jak wykonać podstawowe zapytanie SQL, aby pobrać rekordy z dowolnej tabeli w bazie danych. Potrafisz też dostosowywać zapytania – wybierać określone kolumny i ograniczać liczbę zwracanych wierszy.
Istnieje jeszcze kilka standardowych technik SQL, które przydadzą ci się w drodze do mistrzostwa w tej dziedzinie.
Powiedzmy, że chcesz pobrać wszystkie rekordy z tabeli Customer bazy danych Chinook, w których pole Country ma wartość 'Canada'. W SQL możesz to zrobić bardzo prosto – wystarczy instrukcja SELECT uzupełniona o klauzulę WHERE:
SELECT * FROM Customer WHERE Country = 'Canada'
Klauzula WHERE pozwala filtrować wyniki dowolnego zapytania SELECT według wybranego warunku. Tę technikę nazywamy filtrowaniem rekordów.
W tym ćwiczeniu pobierzesz wszystkie rekordy z tabeli Employee, dla których wartość 'EmployeeId' jest większa lub równa 6.
Pakiety są już zaimportowane:
import pandas as pd
from sqlalchemy import create_engine
Do dzieła!
To ćwiczenie jest częścią kursu
Wprowadzenie do importowania danych w Pythonie
Instrukcje do ćwiczenia
- Uzupełnij argument funkcji
create_engine(), aby utworzyć silnik dla bazy danych SQLite'Chinook.sqlite'. - Wykonaj zapytanie, które wybiera wszystkie rekordy z tabeli
Employeegdzie'EmployeeId'jest większe lub równe6. Użyj operatora>=i przypisz wyniki do zmiennejrs. - Wywołaj metodę
fetchall()na obiekciers, aby pobrać wszystkie rekordy. Zapisz je w DataFramedf. - Używając obiektu
rs, ustaw nazwy kolumn DataFrame na odpowiadające im nazwy kolumn tabeli.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create engine: engine
engine = create_engine(____)
# Open engine in context manager
# Perform query and save results to DataFrame: df
with engine.connect() as con:
rs = con.execute(____)
df = pd.DataFrame(____)
df.columns = ____
# Print the head of the DataFrame df
print(df.head())